Je dois déployer un processus automatisé (via 1 min cron script) qui recherche des fichiers tar dans un répertoire spécifique. Si un fichier tar est trouvé, il est détarré à l'emplacement approprié, puis le fichier tar est supprimé.
Les fichiers tar sont automatiquement copiés sur ce serveur par SSH depuis un autre serveur. Dans certains cas, les fichiers tar sont extrêmement volumineux, avec beaucoup de fichiers.
Le problème que je m'attends à rencontrer : S'il faut > 1 minute pour que le fichier tar soit copié sur le serveur, et que le cron script s'exécute une fois par minute, il va voir le fichier .tar.gz et essayer de le dé-tarer, même si le fichier tar est toujours en cours d'écriture.
Existe-t-il un moyen (via des commandes bash) de tester si un fichier est en cours d'écriture, ou si ce n'est qu'un fichier partiel, etc ?
Une alternative à laquelle je pensais était de faire en sorte que le fichier soit copié sous une extension de fichier différente (comme par exemple .tar.gz.part
), puis renommé en .tar.gz
après que le transfert soit terminé. Mais je me suis dit que j'allais essayer de savoir s'il n'y avait pas simplement un moyen de déterminer si le fichier est entier à la ligne de commande d'abord... Des indices ?