Задать вопрос
@Deyle

Как настроить скрипт для rsync?

Всем привет. Подскажите, пожалуйста, как правильно настроить скрипт rsync для крона? Сейчас есть один
#!/bin/bash

date=$(date '+%Y-%m-%d')
BACKUPDIR=/home/pisarev/backup/$date
mkdir -p $BACKUPDIR
pg_dumpall -U postgres -w > $BACKUPDIR/dump_psql.bak
cp -r /var/ $BACKUPDIR
cp -r /etc/ $BACKUPDIR
tar -cvf backup_$date.tar /home/pisarev/backup/$date
rsync -ave "ssh -p 55422 -i /home/pisarev/.ssh/id_rsa" /home/pisarev/backup_$date.tar rsync@192.168.1.1:/volume1/NetBackup/site
exit
rm /home/pisarev/backup_$date.tar


Вопрос в том, что этот скрипт установлен в крон на нескольких виртуалок. На одной работает, на одной из других он запускается, но ничего не передает. Я запустил скрипт и включил логи:
/home/pisarev/backup_zabbix/2022-11-30/
/home/pisarev/backup_zabbix/2022-11-30/dump_2022-11-30.sql
/home/pisarev/backup_zabbix/2022-11-30/www/
/home/pisarev/backup_zabbix/2022-11-30/www/html/
/home/pisarev/backup_zabbix/2022-11-30/www/html/index.nginx-debian.html
/home/pisarev/backup_zabbix/2022-11-30/apache2/
/home/pisarev/backup_zabbix/2022-11-30/apache2/conf-available/
/home/pisarev/backup_zabbix/2022-11-30/apache2/conf-available/php7.4-fpm.conf
sending incremental file list

sent 18 bytes  received 11 bytes  19.33 bytes/sec
total size is 0  speedup is 0.00


Дамп который делается в скрипте не передается. И не приходит вообще ничего. В чем может быть проблема? Может я где то в синтаксисе ошибку сделал? Всем спасибо
  • Вопрос задан
  • 204 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 5
@rPman
Не уверен по причинам проблем у тебя, скорее всего либо с правами доступа проблемы либо с настройками сети.

Добавь сохранение логов ( 2>>errors.log >>info.log ) к вызовам tar и rsync

Но есть совет!
Так как ты передаешь один единственный файл - .tar архив, нет смысла использовать rsync, достаточно scp, мало того, нет смысла даже сохранять промежуточно архив у себя. Достаточно передавать архив по ssh сразу в момент его создания, а успешность доставки проверять по коду ошибки, примерно так
tar -cvf - $BACKUPDIR |  ssh -p 55422 -i /home/pisarev/.ssh/id_rsa rsync@192.168.1.1 "cat /dev/stdin > /volume1/NetBackup/site/backup_$date.tar"
Ответ написан
Комментировать
@q2digger
никого не трогаю, починяю примус
уточню. этот скрипт - одинаковый - должен работать на **разных** виртуалках?
сервер на который льются бэкапы как их различать должен? нет ощущения что они там переписывают друг друга?
Ответ написан
@paradonado
начинающий
cp -r /var/ $BACKUPDIR
cp -r /etc/ $BACKUPDIR


Вот тут скорее всего тонкий лёд. На одной виртуалке видимо права корректно настроены на другой нет, или как пример в одном случае используете root , в другом нет.
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
А почему в логах фигурирует /backup_zabbix/2022-11-30/, когда должно быть /backup_2022-11-30.tar ?
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега Linux
Зачем вам для этого rxync?
1. занимает местио бэкапом.
2. Производительность, вначале создать потом отправить, когда можно это делать сразу
3. исключай мусор в виде кеша, нафиг его таскать туда сюда.

tar -cvpzf - --directory /home/bitrix/www --ignore-failed-read --exclude='./bitrix/tmp' --exclude='./bitrix/updates' --exclude='./bitrix/backup/*\.gz*' --exclude='./bitrix/backup/*\.tar*' --exclude='./bitrix/cache' --exclude='./bitrix/managed_cache' --exclude='./bitrix/stack_cache' --exclude='./upload' --exclude='./stats' --exclude='./bitrix/www/bitrix/.settings.php' --exclude='./bitrix/php_interface/dbconn.php' . |ssh root@192.168.0.246 "cd /home/bitrix/www;tar xvfz -"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы