Здравствуйте!
Есть Ubuntu server 12.04
Задача: выполнять бэкап.
Используется rdiff-backup и работает, если запускать из командной строки.
(Настраивался по этой статье:
http://www.hilik.org.ua/rdiff-backup/)
Вот как настроен крон (редактором nano):
root@svk-server:~# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
MAILTO=""
54 11 * * * /bin/date > /tmp/backup.log && /root/bin/rdiff-backup.sh >> /tmp/backup.log && /bin/date >> /tmp/backup.log
Пустая строка в конце есть.
Вот что в скрипте /root/bin/rdiff-backup.sh
#!/bin/bash
#Определяем имя сервера который бекапим, нужно для создания иерархии в бекап директории на удаленном сервере
HOST_NAME=`/bin/hostname -s`
#Адрес сервера на который будем бекапить
REMOTE_HOST='192.168.0.177'
#Пользователь от имени которого будем бекапить
USER='svkbackup'
#Директория на удаленном сервере в которой создаются бекапы
PREFIX='/storage/backup'
#Директории которые необходимо бекапить
#WHAT='/bin /boot /etc /home /ldaphome /lib /lib64 /opt /root /sbin /srv /usr /var'
WHAT='/bin /boot /etc /lib /lib64 /opt /sbin /srv /usr'
#Директории для исключения
EXCLUDE_DIRS='**smb4k** **.backup** **~ **/var/run **/var/lock **/root/svk-server'
EXCLUDE=''
for ex in $EXCLUDE_DIRS
do
EXCLUDE=$EXCLUDE' --exclude '$ex
done
#Главный цикл бекапа
for i in $WHAT
do
`/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/$USER/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets $EXCLUDE --preserve-numerical-ids -b $i $USER@$REMOTE_HOST::/$PREFIX/$HOST_NAME$i`
echo "/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/$USER/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets $EXCLUDE --preserve-numerical-ids -b $i $USER@$REMOTE_HOST::/$PREFIX/$HOST_NAME$i"
done
Скрипт выполняется, создаётся файл /tmp/backup.log
примерно с таким содержимым:
Thu Oct 25 11:54:01 MSK 2012
/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/svkbackup/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets --exclude **smb4k** --exclude **.backup** --exclude **~ --exclude **/var/run --exclude **/var/lock --exclude **/root/svk-server --preserve-numerical-ids -b /bin svkbackup@192.168.0.177:://storage/backup/svk-server/bin
/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/svkbackup/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets --exclude **smb4k** --exclude **.backup** --exclude **~ --exclude **/var/run --exclude **/var/lock --exclude **/root/svk-server --preserve-numerical-ids -b /boot svkbackup@192.168.0.177:://storage/backup/svk-server/boot
/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/svkbackup/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets --exclude **smb4k** --exclude **.backup** --exclude **~ --exclude **/var/run --exclude **/var/lock --exclude **/root/svk-server --preserve-numerical-ids -b /etc svkbackup@192.168.0.177:://storage/backup/svk-server/etc
/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/svkbackup/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets --exclude **smb4k** --exclude **.backup** --exclude **~ --exclude **/var/run --exclude **/var/lock --exclude **/root/svk-server --preserve-numerical-ids -b /lib svkbackup@192.168.0.177:://storage/backup/svk-server/lib
/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/svkbackup/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets --exclude **smb4k** --exclude **.backup** --exclude **~ --exclude **/var/run --exclude **/var/lock --exclude **/root/svk-server --preserve-numerical-ids -b /lib64 svkbackup@192.168.0.177:://storage/backup/svk-server/lib64
/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/svkbackup/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets --exclude **smb4k** --exclude **.backup** --exclude **~ --exclude **/var/run --exclude **/var/lock --exclude **/root/svk-server --preserve-numerical-ids -b /opt svkbackup@192.168.0.177:://storage/backup/svk-server/opt
/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/svkbackup/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets --exclude **smb4k** --exclude **.backup** --exclude **~ --exclude **/var/run --exclude **/var/lock --exclude **/root/svk-server --preserve-numerical-ids -b /sbin svkbackup@192.168.0.177:://storage/backup/svk-server/sbin
/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/svkbackup/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets --exclude **smb4k** --exclude **.backup** --exclude **~ --exclude **/var/run --exclude **/var/lock --exclude **/root/svk-server --preserve-numerical-ids -b /srv svkbackup@192.168.0.177:://storage/backup/svk-server/srv
/usr/bin/rdiff-backup --remote-schema '/usr/bin/ssh -i /home/svkbackup/.ssh/id_rsa -C %s /usr/bin/rdiff-backup --server' --create-full-path --exclude-device-files --exclude-fifos --exclude-sockets --exclude **smb4k** --exclude **.backup** --exclude **~ --exclude **/var/run --exclude **/var/lock --exclude **/root/svk-server --preserve-numerical-ids -b /usr svkbackup@192.168.0.177:://storage/backup/svk-server/usr
Thu Oct 25 11:54:03 MSK 2012
Всё проходит за 2 секунды и ни чего не бэкапится.
Но если выполнить из коммандной строки, то всё бэкапится так как надо.
я гуглил, пробовал настраивать крон в /etc/crontab (с указание пользователя root перед командой)
Всё тоже самое. команды запускаются, но не выполняются.
в syslog пишет просто:
Oct 25 11:54:01 svk-server CRON[15654]: (root) CMD (/bin/date > /tmp/backup.log && /root/bin/rdiff-backup.sh >> /tmp/backup.log && /bin/date >> /tmp/
backup.log)
Прошу прощения за такую тему, так как в гугле видел, что их сотни, но везде решения не помогающие мне.
Помогите, пожалуйста!
UPD 26.10.2012Выяснилось, что не работает из-за проблем с авторизацией.
На бэкап-сервере такое в auth.log:
Oct 25 19:01:02 svk-backup sshd[16123]: Failed password for svkbackup from 192.168.0.155 port 59061 ssh2
Oct 25 19:01:02 svk-backup sshd[16123]: Failed password for svkbackup from 192.168.0.155 port 59061 ssh2
Oct 25 19:01:02 svk-backup sshd[16123]: Connection closed by 192.168.0.155 [preauth]
Почему из командной строки проблем нет, а из CRON есть? Как это исправить?
Решение:https://forum.ubuntu.ru/index.php?topic=205072.msg1555339#msg1555339