我使用Bashscript从我的系统和最重要的配置文件进行自动备份。
奇怪的是,在运行脚本后,它应该向我发送一封包含日志文件内容的电子邮件。但调试脚本显示,它运行的命令改变了,而不是在我的脚本中编写
脚本:
#!/bin/bash
###########################
### ###
### BACKUP SCRIPT ###
### ###
###########################
......
LOG="backup.log"
exec > >(tee -i >( sed 's/\x1B\[[0-9;]*[JKmsu]//g' > ${LOG}))
exec 2>&1
# commands etc
mailx -s "Backup | subject" mail@mail.tld < $LOG
所以我的日志包含所有必要的输出而且不是空的。
调试脚本会显示此
echo -e '\033[1;32mExiting prune script\033[0m'
Exiting prune script
+ mailx -s 'Backup | subject' mail@mail.tld #Missing < $LOG!!!
真的不知道为什么它错过了我的日志文件。我收到的邮件只是一封空邮件,邮件正确。
一些想法为什么?
PS:使用Ubuntu 16.04 LTS,但这不重要
Backup.log:https://pastebin.com/cCVSLV0h没什么特别的。
如果我直接从我的shell运行mail命令,它会按照我的预期发送这个日志。