Je sais qu'il y a eu un peu de discussion sur des sujets similaires à celui-ci. Mais voici ce que j'essaie essentiellement de faire.
J'ai un répertoire de surveillance appelé watched
et chaque fois qu'un fichier est ajouté à ce répertoire, je veux déclencher un script appelé syncbh.sh
qui prendra les fichiers de ce répertoire et les téléchargera sur un serveur distant.
La mise en garde est que les fichiers sont créés dans le watched
répertoire par un utilisateur (utilisateur2), mais le script est exécuté par un autre (utilisateur1).
J'ai essayé d'utiliser incron pour accomplir cela, mais continuez à rencontrer un problème majeur car, bien que le script puisse être exécuté manuellement par utilisateur1 avec les privilèges root, le démon incron n'est jamais réellement déclenché automatiquement par un événement de création de fichier par l'autre utilisateur2.
J'ai pensé si l' inotisme serait une meilleure alternative, mais je ne sais pas comment la syntaxe de cela fonctionne. S'il y a une meilleure façon d'accomplir cela, ou si je finis par utiliser l' inoticoming, quelle serait la syntaxe de la commande pour lui demander de regarder le /home/user1/watched
répertoire et d'exécuter le script /usr/local/bin/syncbh.sh
si un fichier est créé / modifié dans ce répertoire?
Toute aide serait très appréciée.
la source
inoticoming
?Réponses:
En utilisant
inoticoming
:Vous pouvez mettre un script
/etc/init.d/
qui s'exécuteinoticoming
au démarrage.Créez un nouveau dossier pour contenir le
inoticoming
journal / dernierpid
duwatched
dossier:sudo mkdir -p /var/log/inoticoming/watched/
Créez un script
inoticoming_watched
dans/etc/init.d/
:* N'oubliez pas de changer <path_to_folder> et <path_to_script> pour faire correspondre le chemin complet du
watched
dossier et le chemin complet du script à exécuterMarquez le script comme exécutable:
sudo chmod u+x /etc/init.d/inoticoming_watched
Assurez-vous que le script appelé par
inoticoming_watched
est exécutable.Mettre
rc.d
à jour pour faireinoticoming_watched
démarrer le service au démarrage:sudo update-rc.d inoticoming_watched defaults
Vous pouvez vérifier la
inoticoming
connexion/var/log/inoticoming/watched
.la source
Tout d'abord, installez inoticoming :
Utilisez ensuite cette commande:
Faites attention aux processus en cours d'inotisme, car ils peuvent être démarrés plusieurs fois.
Le processus se déroule en arrière-plan et surveille
/home/user1/watched
Lorsqu'un fichier est ajouté ou modifié dans ce répertoire, le script
/usr/local/bin/syncbh.sh
est appelé.Le paramètre de ce script est dans ce cas
/home/user1/watched/<name_of_changed_or_modified_file>
{}
est remplacé par le nom de fichierla source
Tout d'abord, un script pour regarder le
watched
répertoire:Deuxième Pour faire la synchronisation en tant qu'un autre utilisateur (utilisateur2):
Maintenant, afin de ne pas faire d'invite utilisateur, vous pouvez définir votre
sudo
mot de passe dans un fichier et lire le mot de passe de ce fichier si nécessaire (notez que vous devez utiliser-S
avecsudo
pour obtenir le mot de passe du fichier le).Mettez votre
sudo
mot de passe dans un fichier, supposonspasswd.txt
, alors la commande ci-dessus sera sucée commeMaintenant, le script global sera comme:
la source