как сделать цикл с проверкой md5sum в bash скрипте?

При отсутствии dhcp он получит ip в диапазоне 169.254.0.0/16. Чтобы получить фактический IP-адрес, вы можете попробовать arp -a в cmd windows или использовать какой-либо инструмент сетевого сканера, чтобы получить все живые хосты в этом диапазоне (вы и сам pi).

Убедитесь, что ваш сетевой интерфейс настроен на получение dhcp ip, а не статического.

1
19.04.2017, 17:57
2 ответа

То, что вы описываете, никогда не должно происходить без того, чтобы rsync не указал на ошибку или ваша машина не упала (и, таким образом, rsync никогда не вернется, потому что машина умерла). См. мой комментарий для некоторых предложений по этому поводу.

Однако вычисление и хранение контрольной суммы является хорошей практикой, и проверить ее довольно просто - если вы можете подключиться к другой машине по ssh или запустить на ней отдельный скрипт (предполагается, что ни в одном из имен файлов нет одинарных кавычек):

# the cut below is to get the MD5 only, without the file name.
md5_local="$(md5sum "$REMOTEDIR/$COMPRESSEDFILE" | cut -d' ' -f1)"
md5_remote="$(ssh "$BACKUPHOST" "md5sum '$REMOTEDIR/$COMPRESSEDFILE'" | cut -d' ' -f1)"
if [ "$md5_local" = "" ]; then
    echo "Something went terribly wrong."
elif [ "$md5_local" = "$md5_remote" ]; then
    echo "MD5s match"
else
    echo "MD5s DO NOT match"
fi

Еще одна вещь, которую вы можете сделать - и это, вероятно, предпочтительнее - это добавить файл MD5 в rsync, а затем сохранить его вместе с резервной копией. Это позволит вам убедиться, что резервная копия не сгнила.

PS: Вам следует подумать о настоящей системе резервного копирования, по крайней мере, если у вас несколько машин.

1
27.01.2020, 23:34
  • rsync знает, когда файл неполный. Просто регулярно запускайте rsync, и он сам позаботится о повторной отправке новых частей файла по мере необходимости.
  • Может случиться так, что $TEMPDIR слишком мал, чтобы содержать tar czvf ? тогда вы бы отправили этот (неполный) файл с помощью rsync?
  • почему бы не упростить:

    • дамп базы данных, как вы сделали
    • затем cd "$LOCALDIR" && rsync -azvh *_bkp_*.sql "$BACKUPHOST":"$REMOTEDIR"
1
27.01.2020, 23:34

Теги

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