Splitte un gros fichier et déposer sur FTP toutes les 15 mn
Résolupcsystemd Messages postés 702 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans mon script Bash, je voudrais diviser un gros fichier en fichiers de 3000 lignes, puis toutes les 15 minutes déposer le tout fichier par fichier sur un FTP après l'avoir renommé comme à l'origine.
Pour diviser un gros fichier, je sais faire :
$ split -l 3000 -d fichier.txt fichier.txt fichier.txt00 fichier.txt01 fichier.txt02 fichier.txt03 fichier.txt04 fichier.txt05 ...
Là où j'ai besoin de vous, c'est que je dois faire une boucle qui toutes les 15mn dépose fichier par fichier en le renommant comme à l'origine, c'est-à-dire :
- fichier.txt00
- on le renomme fichier.txt puis on le dépose sur le FTP
- 15 minutes plus tard, fichier.txt01
- on le renomme fichier.txt puis on le dépose sur le FTP
- etc..
Une idée comment je pourrais faire?
Merci pour votre aide.
- Splitte un gros fichier et déposer sur FTP toutes les 15 mn
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
2 réponses
Bonjour,
Tu peux faire une boucle for qui incrémente ton compteur, et attendre à chaque fin d'itération pendant 15 minutes avec la commande split. Voici un exemple qui illustre cette idée :
#!/bin/bash # Fake split # << for i in $(seq 1 5) do filename=$(printf "fichier.txt%d" $i) touch "$filename" done # >> for filename in $(ls -1 fichier.txt*) do echo "ftp: put $filename" sleep 1 # Délai à remplacer par 900 (15 * 60 = 900) done
Ceci je pense devrais aussi regarder du côté de logrotate.
Bonne chance