Сценарий оболочки, который создает журнал, если файл не отправляется на удаленный сервер.

Вы путаете синтаксис luksFormatи luksOpen.

luksFormatне открывает устройство, поэтому не использует имя устройства для сопоставления. Поэтому, если вы попытаетесь передать один из них, он будет интерпретировать его как имя файла ключа и попытается (и, вероятно, не сможет )открыть его.

Вот примерluksFormat:

sudo cryptsetup luksFormat test.img
WARNING!
========
This will overwrite data on test.img irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:

И примерluksOpen:

sudo cryptsetup luksOpen test.img cryptsetup-test
Enter passphrase for test.img
0
09.04.2020, 08:37
1 ответ

Если вы хотите регистрировать только неудачные попытки, вы можете получить возвращаемое значение rsync, заглянув в $?, которое является возвращаемым значением последнего скрипта. rsyncвозвращает 0 в случае успеха и ненулевое значение при различных ошибках(https://lxadm.com/Rsync_exit_codes). Я бы так поступил:

#!/bin/bash

ret_text=$({rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved} 2>&1)

if [ $? -ne 0 ]; then
    echo rsync error code $? on $(date)
    echo rsync output follows
    echo $ret_text
fi

Вы можете поместить это в script, и когда вы запустите его, перенаправить его вывод в файл журнала, подобный этому script >> log_file, или вы можете просто вызвать скрипт и добавить >> log_fileпосле каждой команды echo в скрипте.

Если вы хотите регистрировать и успешные попытки, чем вы делаете

rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved &>> log_file

или

rsync --log-file=log_file /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved

Я бы также предложил увеличить объем информации, которую производит rsync, добавив -vили -vv. Также можно использовать -vvvили даже больше, но в руководстве сказано, что это для целей отладки.

0
28.04.2021, 23:18

Теги

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