J'essaie d'écrire un script Unix qui tronque/vide un fichier continuellement écrit/ouvert par une application lorsqu'il atteint 3 Go d'espace. Je sais que la commande ci-dessous le ferait:
cp /dev/null [filename]
Mais je vais exécuter cela automatiquement dans un environnement de production en tant que tâche cron. Je poste ici pour voir si vous rencontrez des problèmes tout en faisant quelque chose de similaire.
Juste pour ajouter une autre réponse,
: > filename
:
est un non-op de bash, donc cela ouvre simplement le fichier en écriture (ce qui bien sûr le tronque) et le ferme immédiatement.
EDIT: comme le corrige le commentaire, vous n'avez pas besoin d'une commande pour accompagner la redirection:
$ echo foo > foo.txt
$ cat foo.txt
foo
$ > foo.txt
$ cat foo.txt
$
Une simple redirection à elle seule effacera le fichier.
J'ai utilisé la commande suivante sur debian
truncate -s 0 filename
Cela me semble raisonnable. Unix, bien sûr, vous permettrait de faire cela de 50 façons différentes. Par exemple,
echo -n "" >filename
cat /dev/null >filename
trunc filename
fonctionne sur la version AIX d'UNIX