Я создал пакетный скрипт для резервного копирования нашего сервера:
#!/bin/bash
user=$1
# create user dir
ssh root@local.backup.tst -p 5774 mkdir -p /var/backup/server.tst/incremental/$user
# backup mail dir
rsync -rvz --del --rsh='ssh -p5774' /home/$user/imap root@local.backup.tst:/var/backup/server.tst/incremental/$user
cd /home/$user/domains
ls -1 | while read -r domain
do
sh /etc/pxl/backup/domain.sh $user $domain
done
Но когда я бегу sh script.sh username
зависает.
Сначала я получаю sending incremental file list
и после этого больше не отвечает. Когда я нажимаю ctrl-C (сценарий прерывания), вывод меняется:
sync error: unexplained error (code 130) at rsync.c(543) [sender=3.0.7]
sending incremental file list
public_html/gh.html
public_html/index.php
public_html/cgi-bin/.htaccess
public_html/... (and so on)
.. но снова зависает. Когда я снова нажимаю ctrl-C, я получаю:
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(543) [sender=3.0.7]
С обеих сторон у меня установлена одна и та же версия (3.0.7, протокол 30). Я уже читал этот тему, но это не решает мою проблему.
Кто-нибудь знает, что здесь не так? Как я могу это решить? Заранее спасибо!
Попробуйте запустить сценарий с -v (или 2). Подробный вывод покажет вам, где и почему он останавливается. Также проверьте свои экранированные символы и абсолютные пути. Это довольно частые причины зависания rsync.
Проблема может быть в том, что у rsync возникнут проблемы с удалением файлов на приемнике. Попробуйте --ignore-errors, чтобы убедиться, что это так.