Сценарий оболочки для уведомления BackupPC не работает

Портативно.

TAB=$(printf '\t')
sed "s/^  */$TAB/" < file.in > file.out

Некоторые оболочки (как минимум ksh93 , zsh , bash , mksh и FreeBSD sh )) поддерживают особую форму кавычек ( $ '...' ), где раскрываются такие вещи, как \ t .

sed $'s/^  */\t/' < file.in > file.out

Оболочка fish расширяет те, которые не указаны в кавычках:

sed 's/^  */'\t/ < file.in > file.out

Некоторые реализации sed , такие как GNU sed , также распознают \ t как имея в виду TAB сами по себе. Так что с ними это тоже будет работать:

sed 's/^  */\t/' < file.in > file.out

Переносимо, awk действительно расширяет \ t внутри двойных кавычек. А также использует расширенные регулярные выражения, поэтому можно использовать x + вместо xx * :

awk '{sub(/^ +/, "\t"); print}' < file.in > file.out
1
17.08.2017, 13:06
1 ответ

Попробуйте заключить команду в кавычки и добавить точку с запятой в конце:

 $Conf{DumpPostUserCmd} = '/var/lib/backuppc/backuppc_notification_email.sh $xferOK $host $type $client $hostIP $share $XferMethod $sshPath $cmdType';

Из Документация BackupPC:

The configuration file is a perl script that is executed by BackupPC, so you should be careful to preserve the file syntax (punctuation, quotes etc) when you edit it. It is recommended that you use CVS, RCS or some other method of source control for changing config.pl.

Кроме того, вы можете использовать здесь документ для создания сообщения электронной почты:

cat << _EOF_ > "$EMAILMESSAGE"
The filesystem backup for $host $STATUS 
-----------------------------------------
Type: $type
Client: $client
Host: $host
Host IP: $hostIP
Share: $share
XferMethod: $XferMethod
sshPath: $sshPath
cmdType: $cmdType
_EOF_
0
28.01.2020, 00:50

Теги

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