Exécuter crontab en tant que root ne fonctionne pas

0

J'ai besoin d'exécuter un script de sauvegarde chaque nuit. Lorsque j'exécute manuellement, la sauvegarde se fait sans problème, mais j'utilise sudo crontab -eet ajoute le script ici:

root@SF-DES-SVN:/home/svn# crontab -l
# m h  dom mon dow   command
@daily /home/xxx/do_backup.sh &> /tmp/do_backup.log
@daily /home/xxx/do_rm_old.sh &> /tmp/do_rm_old.log

Mais les scripts ne sont pas en cours d'exécution, dans le journal j'ai msg:

/etc/cron.daily/xxx_backups: line 3: /home/xxx/do_backup.sh: No such file or directory

En ligne 3 du script

SVN_ROOT=/home/svn/

Qui, bien sûr, existe et conserve tous mes référentiels. Mais ça me fait penser que c'est un problème de permission…

  • J'ai essayé avec des modèles au lieu des annotations, même comportement.
  • J'ai essayé avec des @hourlyannotations et des travaux, mais je pense que c'est parce que la session root est ouverte.

Une idée de ce qui se passe?

METTRE À JOUR:

root@SF-DES-SVN:/# cat /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/SF--DES--SERVER-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fe2e0df4-cd99-4189-8eed-9d7519e2aba8 /boot           ext2    defaults        0       2
#/dev/mapper/SF--DES--SERVER-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
/dev/mapper/cryptswap1 none swap sw 0 0
/dev/sda3  /home/back_svn ext3 defaults,auto 0 2

UPDATE2:
Sortie pourls -la /home/siconet/do_backup.sh

-rwxrwxrwx 1 siconet siconet 1055 2014-06-05 17:57 /home/siconet/do_backup.sh

UPDATE3: J'exécute
chaque commande après être entré en tant qu'utilisateur root avec sudo su -. Ai-je raison de supposer la root@SF-DES-SVN:/home/svn# crontab -lliste des utilisateurs crontabs root?

Jordi Castilla
la source
Est-ce /home/svn/sur le même système de fichiers que /, ou est-ce quelque chose que vous devez monter? Il semble étrange que des permissions de fichiers soient impliquées, crontabsoit exécutées en tant que root. Cela ressemble plus à une différence entre deux environnements. Vous pouvez essayer la ligne précédente SVN_ROOT=/home/svnavec df -h; ls /; ls /homejuste pour voir ce que voit le script.
MariusMatutiae
Les modifications effectuées verront demain quel journal a. À propos de l'emplacement: tous les dossiers et scripts se trouvent sur le même ordinateur. La seule action à distance est effectuée lors de la programmation de la crontab. Je me connecte à distance par SSH avec putty et configure crontab en tant que root ... mais la crontab est effectuée dans un serveur de référentiel, pas d'unité montée.
Jordi Castilla
Vous dites "Dans la ligne 3 de la bash". Cette phrase n'a aucun sens. Je suppose que vous voulez dire la ligne 3 du script shell do_backup.sh. Mais ce n’est pas ce dont parle le message d’erreur, c’est qu’il ya un problème avec la ligne 3 du fichier crontab - c’est-à-dire la @daily /home/xxx/do_backup.sh …ligne. Donc, la question est: si vous tapez sudo -i, alors cd /root(ou cd /) et /home/xxx/do_backup.sh, est-ce que ça marche? Etes-vous sûr à 100% de l’orthographe correcte et du bon répertoire? Êtes-vous sûr que ce n'est pas /home/xxx/bin/do_backup.sh?
Scott
Attendez - êtes-vous en train de dire que vous avez les scripts sur une machine et que vous utilisez ssh sur une autre machine pour configurer la crontab? La question est donc la suivante: les scripts sont-ils accessibles à partir de l’endroit où vous exécutez crontab -e?
Scott
@Scott À propos de l'emplacement: tous les dossiers et scripts se trouvent sur le même
Jordi Castilla