J'ai un script bash qui donne toujours la sortie où je l'ai redirigé vers un fichier, ce que j'essaie de faire est de faire pivoter le fichier redirigé, ci-dessous est où je commence l'original scénario et rediriger:Modification du chemin redirigé pendant l'exécution du script
.
somecode
.
su - username -c "command >> /path/to/directory/output.txt" &
.
.
code continues..
et au-dessous est le crontab je suis en train de créer:
cd /path/to/directory/
timestamp=`date "+%Y%m%d"`
mv ./output.txt ./logs/output.txt_$timestamp
touch output.txt
chmod 757 ./output.txt
gzip ./logs/output.txt_$timestamp
find ./logs/output.txt* -type f -mtime +2 | xargs rm
ou celui-ci a également omis de faire le travail:
timestamp=`date "+%Y%m%d"`
cp ./output.txt ./logs/output.txt_$timestamp
echo "" > ./output.txt
gzip ./logs/output.txt_$timestamp
dans le premier code le script d'origine échoue et ne fonctionne plus, et dans le deuxième script il ne nettoie pas le fichier output.txt.
Y at-il un moyen de le faire tout en gardant le script de travail? Remarque; Je cours Unix Solaris.
Merci d'avance.
-t-il logrotate? – 123
Non il ne l'a pas – user104787
La seule solution que j'ai pu trouver était d'avoir tous les scripts arrêtés et de faire ensuite la rotation après le démarrage des scripts, cela aurait été mieux s'il y avait un moyen de changer le chemin de sortie en cours d'exécution , mais même de cette façon, il est comme un script envoyer un sms si le cas que quelque chose tombe en panne, donc un temps d'arrêt de 10 minutes alors que la rotation est toujours acceptable. merci à tous pour votre aide – user104787