[CRONTAB] problème d'éxécution de la commande
koko
-
zurg_ Messages postés 134 Date d'inscription Statut Membre Dernière intervention -
zurg_ Messages postés 134 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous !
j'ai un petit problème, j'ai deux PCs sous CentOS, j'aimerai pouvoir automatiser la sauvegarde d'un fichier que j'utilise assez souvent toutes les 30 minutes, via une commande rsync dans crontab. La sauvegarde se fait à distance (pas sur un seul PC).
sur le poste client j'utilise donc la commande crontab -e
donc on a */30 * * * 1-5 rsync -avz -e ssh /<chemin_fichier> login@ip_serveur:/<chemin destination>/
ce qui veut bien dire que toutes les demi-heure du lundi au vendredi, toutes les modifications du fichier concerné seront enregistrées automatiquement dans <chemin_destination> du serveur
pourtant quand je vérifie les sauvegarde sur le serveur, le transfert n'a pas été fait
pour info, crond est bien démarré (vérifié avec ps -ax)
donc pour le moment je sauvegarde tout à la main en tapant la commande (c'est à dire sans crontab)
quelqu'un peut-il m'aiguiller pour la résolution du problème ?
Merci d'avance
j'ai un petit problème, j'ai deux PCs sous CentOS, j'aimerai pouvoir automatiser la sauvegarde d'un fichier que j'utilise assez souvent toutes les 30 minutes, via une commande rsync dans crontab. La sauvegarde se fait à distance (pas sur un seul PC).
sur le poste client j'utilise donc la commande crontab -e
donc on a */30 * * * 1-5 rsync -avz -e ssh /<chemin_fichier> login@ip_serveur:/<chemin destination>/
ce qui veut bien dire que toutes les demi-heure du lundi au vendredi, toutes les modifications du fichier concerné seront enregistrées automatiquement dans <chemin_destination> du serveur
pourtant quand je vérifie les sauvegarde sur le serveur, le transfert n'a pas été fait
pour info, crond est bien démarré (vérifié avec ps -ax)
donc pour le moment je sauvegarde tout à la main en tapant la commande (c'est à dire sans crontab)
quelqu'un peut-il m'aiguiller pour la résolution du problème ?
Merci d'avance
A voir également:
- [CRONTAB] problème d'éxécution de la commande
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Diskpart commande - Guide
- Commande scannow - Guide
10 réponses
Euh, le d du début indique que tu as affaire à un répertoire...
Tu devrais te renseigner un peu plus sur la gestion des fichiers et des droits sous linux...
Je te déconseille de faire un chmod 777, c'est une mauvaise habitude, si tu veux rajouter uniquement les droits en exécution, un chmod +x backups.sh suffit amplement.
Tu devrais te renseigner un peu plus sur la gestion des fichiers et des droits sous linux...
Je te déconseille de faire un chmod 777, c'est une mauvaise habitude, si tu veux rajouter uniquement les droits en exécution, un chmod +x backups.sh suffit amplement.
Salut,
Vérifie que l'utilisateur qui lance ta commande a les droits d'exécution sur celle-ci.
(Sinon, à placer dans le crontab de root)
à ta place, je ferais un script qui contient ta commande rsync -avz -e ssh /<chemin_fichier> login@ip_serveur:/<chemin destination>/
et c'est le lancement du script que je programmerai dans ton cron.
N'oublie pas de rendre ton script exécutable.
Vérifie que l'utilisateur qui lance ta commande a les droits d'exécution sur celle-ci.
(Sinon, à placer dans le crontab de root)
à ta place, je ferais un script qui contient ta commande rsync -avz -e ssh /<chemin_fichier> login@ip_serveur:/<chemin destination>/
et c'est le lancement du script que je programmerai dans ton cron.
N'oublie pas de rendre ton script exécutable.
et si je crée un fichier backups.sh sous la racine et que j'y met la commande
'rsync -avz -e ssh /<chemin_fichier> login@ip_serveur:/<chemin destination>/ '
du coup je modifie la crontab :
*/30 * * * 1-5 /backups.sh
Si je comprend bien cron va éxécuter la commande qui se trouve dans backups.sh
Cela va-t-il fonctionner ou ne rien faire comme précédemment ?
'rsync -avz -e ssh /<chemin_fichier> login@ip_serveur:/<chemin destination>/ '
du coup je modifie la crontab :
*/30 * * * 1-5 /backups.sh
Si je comprend bien cron va éxécuter la commande qui se trouve dans backups.sh
Cela va-t-il fonctionner ou ne rien faire comme précédemment ?
Oui, sauf que pour faire un script shell, il y a quelques trucs à rajouter en plus dans ton fichier. Je te laisse chercher ça, tu devrais trouver en 3sec sur google.
Et puis sache que chaque utilisateur Unix a un crontab qui lui est propre, et qui permet de lancer des commandes dans SON environnement, avec SES droits.
Donc soit tu étais connecté root lorsque tu as édité ton crontab (crontab -e), auquel cas, tu as juste à rendre ton script shell exécutable (chmod +x <nomdufichier>), soit tu ne l'étais pas et il faut que tu autorises ton user à exécuter la commande rsync.
Voilou
Et puis sache que chaque utilisateur Unix a un crontab qui lui est propre, et qui permet de lancer des commandes dans SON environnement, avec SES droits.
Donc soit tu étais connecté root lorsque tu as édité ton crontab (crontab -e), auquel cas, tu as juste à rendre ton script shell exécutable (chmod +x <nomdufichier>), soit tu ne l'étais pas et il faut que tu autorises ton user à exécuter la commande rsync.
Voilou
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dacodac
en fait j'ai fais un chmod 777 backups.sh
et quand le fais un ls -al pour afficher les droits il me met -rwxrwxrwx ... je comprend ce que ça veut dire mais je sais pas pourquoi il manque le 'd' au début
need help!
en fait j'ai fais un chmod 777 backups.sh
et quand le fais un ls -al pour afficher les droits il me met -rwxrwxrwx ... je comprend ce que ça veut dire mais je sais pas pourquoi il manque le 'd' au début
need help!
faudrait faire une sortie verbose et également des érreurs dans un fichier pour voir ce qui se passe... -v >>result 2>&1 ...non ?
Ben oui, si besoin...
Sinon tu peux faire un autre script qui contrôle la présence de ton fichier de backup...
Sinon tu peux faire un autre script qui contrôle la présence de ton fichier de backup...
Re-bonjour
Je dirai que le problème est presque résolu ...
En fait j'ai faits des tests sur une même machine pour le moment :
- j'ai créé un fichier backups.sh
- j'y ai mis :
#!/bin/bash
rsync -a /home/administrateur/<fichier> /home/administrateur/my_backups/
- j'ai ajouté le droit d'éxécution pour backups.sh avec la commande chmod u+x backups.sh
- j'ai modifié crontab avec crontab -e
- j'y ai mis :
*/5 * * * 1-5 /bin/backups.sh
- j'ai modifié la crontab dans etc
- j'y ai mis :
*/5 * * * 1-5 /bin/backups.sh
- Puis j'ai redémarré crond avec /etc/init.d/crond restart
Le test est concluant, la sauvegarde se fait toutes les 5 minutes
j'ai refais la même démarche pour la sauvegarde à distance en créant backups_srv.sh et en y inscrivant :
#!/bin/bash
rsync -a -e ssh /home/administrateur/my_backups/ root@titi:/home/administrateur/backups_rsync/
j'ai modifié les droits et la crontab pour executer la commande toutes les 5 minutes
mais là problème rien ne se passe, si vous avez des suggestions, pouvez vous m'en faire part s'il vous plait
Je dirai que le problème est presque résolu ...
En fait j'ai faits des tests sur une même machine pour le moment :
- j'ai créé un fichier backups.sh
- j'y ai mis :
#!/bin/bash
rsync -a /home/administrateur/<fichier> /home/administrateur/my_backups/
- j'ai ajouté le droit d'éxécution pour backups.sh avec la commande chmod u+x backups.sh
- j'ai modifié crontab avec crontab -e
- j'y ai mis :
*/5 * * * 1-5 /bin/backups.sh
- j'ai modifié la crontab dans etc
- j'y ai mis :
*/5 * * * 1-5 /bin/backups.sh
- Puis j'ai redémarré crond avec /etc/init.d/crond restart
Le test est concluant, la sauvegarde se fait toutes les 5 minutes
j'ai refais la même démarche pour la sauvegarde à distance en créant backups_srv.sh et en y inscrivant :
#!/bin/bash
rsync -a -e ssh /home/administrateur/my_backups/ root@titi:/home/administrateur/backups_rsync/
j'ai modifié les droits et la crontab pour executer la commande toutes les 5 minutes
mais là problème rien ne se passe, si vous avez des suggestions, pouvez vous m'en faire part s'il vous plait
Salut,
il faut vérifier plusieurs points :
d'abord je te conseille de faire un man rsync ou de te rendre ici : http://www.delafond.org/traducmanfr/man/man1/rsync.1.html afin de voir toutes les options que tu peux utiliser.
Par défaut rsync utilise le ssh, je ne suis pas sûr que le -e ssh soit utile dans ton cas. D'ailleurs l'option -e permet d'utiliser un autre shell.
Vérifie donc que tu ne bloques pas le ssh sur ta machine distante (firewall), et puis essaie sans -e ssh.
il faut vérifier plusieurs points :
d'abord je te conseille de faire un man rsync ou de te rendre ici : http://www.delafond.org/traducmanfr/man/man1/rsync.1.html afin de voir toutes les options que tu peux utiliser.
Par défaut rsync utilise le ssh, je ne suis pas sûr que le -e ssh soit utile dans ton cas. D'ailleurs l'option -e permet d'utiliser un autre shell.
Vérifie donc que tu ne bloques pas le ssh sur ta machine distante (firewall), et puis essaie sans -e ssh.