Рейтинг:0

Выполните следующие шаги после завершения rsync

флаг id

Сначала я подумал, что rsync не синхронизирует все описанное здесь Ограничения rsync? Не все синхронизируется

Теперь через день я узнал, что он на самом деле все еще работает / работает, и теперь все файлы на месте. Проблема такая: у меня зип вместо 1гб всего 200мб.

Поскольку почтовый индекс был создан, я подумал rsync «закончено» и просто не загружает все. Моя логика была такова: tar запускается только тогда, когда rsync закончен. Но, как кажется, это не так.

Как я могу сделать смола дождаться полного завершения rsync? То есть я не получаю неполный архив?

Это мой код:

ПОЛЬЗОВАТЕЛЬ="моеимя пользователя"
СЕРВЕР="мойсерверip"
ПОРТ = "22"
ИСТОЧНИК="магазин"
TARGET="/volume1/BACKUPS/MyFolder/MySubfolder/data/"
LOG="/volume1/BACKUPS/MyFolder/MySubfolder/backup_data.log"

mkdir /volume1/BACKUPS/MyFolder/MySubfolder/

rsync -avz --progress -e "ssh -p $PORT" $USER@$SERVER:$SOURCE $TARGET --delete >> $LOG 2>&1
tar -zcvf /volume1/BACKUPS/MyFolder/имя_архива-$(дата +%Y-%m-%d_%H_%M_%S).tar.gz -C /volume1/BACKUPS/MyFolder/MySubfolder/ .

Это может быть второй вопрос, но как-то связанный с «делать что-то только тогда, когда первое дело закончено».Как определить, что архив тоже "закончен"? Значит, я не открываю/распаковываю архив, который все еще обрабатывается? Что-то вроде переименования файла после фактического завершения архивирования. Как я могу убедиться, что это переименование не просто начинается в какой-то момент и не ждет, пока строка до этого действительно не будет готова, например, с rsync?

Рейтинг:0
флаг br

Я не понимаю, почему это должно работать асинхронно, если в исходном сценарии в конце строки нет амперсанда &. Вы запускаете это как задание cron? Если да, возможно, частота выполнения слишком высока?

Журналы из rsync действительно должны помочь здесь, по крайней мере, чтобы увидеть, действительно ли он завершается. Вы их проверяли?

Кроме того, есть несколько способов сделать эти исполнения более контролируемыми, например, «сделать это, если последнее было успешным». Самый простой будет

rsync -abc --exwhyzed xxx && tar -abc xxx

обратите внимание на двойной амперсанд выше. Последняя команда выполняется только в том случае, если первая выполнена успешно.

Более описательный способ был бы если заявления. Нравиться

если rsync -abc --exwhyzed xxx ; тогда
    деготь -abc ххх
фи

Кроме того, почему вы используете --прогресс опция в сочетании с подробным флагом? При запуске nun-interactive и записи в файл это не кажется мне очень полезным. Однако это всего лишь любопытное замечание.

jona avatar
флаг id
Спасибо. Я посмотрю на это. Да, это cronjob. Но это произошло при первом запуске, и с тех пор я больше его не запускал (или cronjob). Журнал довольно заспамлен из-за всех процентов статуса. Но в логе ничего не сказано о завершении. Только для одиночных файлов. И ни о какой ошибке речи нет. Что означает `xxx`? Или это заполнитель?
loopend avatar
флаг br
Да, это просто заполнители, как и фиктивные варианты. Дело только в структуре.
jona avatar
флаг id
Это последние строки лога `0 100% 0.00kB/s 0:00:00 (всего: 58%) (xfer#47349, to-check=1004/85942) отправлено 1165678 байт получено 200646451 байт 2028262,60 байт/сек общий размер 792975206 ускорение 3.93` Итак, всего было 58%, и сегодня (без изменений в журнале или с повторным запуском) он закончен (загрузил полную вещь через ftp и сравнил файлы). И да, `--progress` довольно глупый, я удалю это, чтобы сделать журнал более понятным, и запущу новый начальный запуск.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.