fabitux a écritContrainte (déjà réglée) :
- comme j'appelle ce script toutes les 2 minutes par cron (/etc/crontab), je dois introduire une condition pour éviter que 2 instances du script ne soient lancées simultanément :
j'ai utilisé une méthode simple pour cela, trouvée sur : http://www.bash-hackers.org/wiki/doku.php/howto/mutex (la méthode crée un répertoire temporaire /var/lock/my/lock qui est effacé une fois le script terminé ; tant qu'il n'est pas supprimé, ça veut dire que le script est en cours, et donc il ne lance pas une nouvelle instance)
Tu aurais aussi pu utilser la commande
pidof ou
pgrep pour savoir si le processus rsync était en cours.
fabitux a écritCe que je ne sais pas faire, c'est ajouter une condition pour que la commande rsync ne soit lancée QUE si un nouveau fichier est apparu dans le répertoire OU les sous-répertoires, ou, éventuellement, QUE si un fichier qui date de moins de XX minutes est dans le répertoire OU les sous-répertoire...
Si tu ne peux pas installer inotify sur ton serveur, peut être qu'en faisant une liste de base et une autre liste à chaque lancement (find doit t'offrir toutes les options nécessaires), il suffit ensuite de comparer (diff) pour savoir si il y a du nouveau.
Moins pratique que inotify, mais bon, faute de grives, on se contentera de merles.
C'est une solution, il doit en avoir d'autres ! (comme tjrs)
ps: A la place de crontab, tu aurais pu faire un script avec un sleep dedans lancé en daemon, vu que tu tournes toutes les 2 mn....