Есть такая шняжка:
rsync --password-file=/etc/rsync_password -A -av --delete --exclude lost+found --exclude bk rsync://login@h.o.s.t:/shares/ /shares>/dev/null
Работала замечательно до какого-то момента, не уследил, до какого, потому что работало по cron-у.
Недавно проводил проверки "всего и вся", обнаружил, что больше это не работает:
rsync: [Receiver] failed to connect to h.o.s.t (h.o.s.t): Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(139) [Receiver=3.2.7]
Полез читать, wtf? Наткнулся на то, что rsync использует в качестве транспорта ssh, а ssh не хочет кушать пароли в таком непотребном виде (раньше проблем не возникало!). И тоже, нашёл вот это вот:
Цитата: dzhoser от 17 октября 2022, 06:12:34install sshpass
И попробовал с десяток вариантов, как это вкорячить, но пока не взлетело :-[
У кого-нибудь получилось? Сервер Debian 11, Devuan 5 - один фиг. Подскажите!
18 октября 2023, 17:04:17...кстати, вот сейчас полез в /etc/default/rsync, что-то накатило, знаете ли...
И вижу там буквально следующее:
RSYNC_ENABLE=false
И как-то подумалось, а не в этом ли затесался косячок?
Посмотрел, какой-то шальной апдейт поменял его на дефолтовый, а там ещё и /etc/rsyncd.conf упоминался... Поставил обратно старый конфиг, стало по-другому:
rsync: did not see server greeting
rsync error: error starting client-server protocol (code 5) at main.c(1675) [Receiver=3.1.3]
Полагаю, что теперь уже можно и с sshpass поколдовать?
18 октября 2023, 17:35:03Понял, в чём бредятина :)
--password-file=/etc/rsync_password - это относилось к какой-то старой версии, которая работала через ssh://
rsync://login@h.o.s.t - это не относится к ssh, а относится конкретно к протоколу rsync, его транспорт. Если используется rsync://login@h.o.s.t, то --password-file=/etc/rsync_password вообще не при делах. У меня были два вида скриптов для ручной синхронизации, где набираешь пароль от пользователя ssh и используется там просто login@h.o.s.t без rsync://, и автоматический скрипт, который работает автоматически по rsync:// без ssh.
Короче, всё понял, всё наладил. Поломка была в подмене /etc/default/rsync.
У меня вот это вполне работает. Дебиан 11-й на обоих сторонах.
/usr/bin/rsync -avz --progress --delete --password-file=/etc/rsyncd.scrt ${srv_u
ser}@${srv_ip}::${srv_dir} ${syst_dir}${srv_name}/current/ --backup --backup-dir
=${syst_dir}${srv_name}/increment/`date +%Y-%m-%d`/