英语不是我的母语,请接受我对任何语言问题的道歉。
我想通过CRON执行脚本(bash / sh),它将执行各种维护操作,包括备份。该脚本将执行其他脚本,每个脚本对应一个函数。而且我希望将打印的全部内容保存在每个执行脚本的单独文件中。
问题是这些其他脚本中的每一个都执行诸如" duplicity"," certbot"," maldet"等命令。 " ECHO"每个脚本中的命令都打印在文件中,但是" duplicity"," certbot"的输出。和" maldet"命令不! 我想避免放入" | tee --append"或每行上的另一个命令。但即使在每一行都这样做,"下标"不要保存在日志文件中。也就是说,理想情况下,在父脚本中,您可以指定每个脚本在哪个文件中打印。
sudo bash /duplicityscript > /path/log
或
sudo bash /duplicityscript >> /path/log
sudo bash /duplicityscript | sudo tee –append /path/log > /dev/null
或
sudo bash /duplicityscript | sudo tee –append /path/log
使用exec(like this):
exec > >(tee -i /path/log)
sudo bash /duplicityscript
exec > >(tee -i /dev/null)`
./ maincron :
sudo ./duplicityscript > /myduplicity.log
sudo ./maldetscript > /mymaldet.log
sudo ./certbotscript > /mycertbot.log
./ duplicityscript :
echo "Exporting Mysql/MariaDB..."
{dump command}
echo "Exporting postgres..."
{dump command}
echo "Start duplicity data backup to server 1..."
{duplicity command}
echo "Start duplicity data backup to server 2..."
{duplicity command}
在日志文件中,将打印:
Exporting Mysql/MariaDB...
Exporting postgres...
Start duplicity data backup to server 1...
Start duplicity data backup to server 2...
在上面的示例中," ECHO"每个脚本中的命令都将保存在日志文件中,但duplicity和dump命令的输出将打印在屏幕上,而不是打印在日志文件中。
我做了一个googlada,我甚至看到this topic,但我无法适应我的必需品。
没有问题,输出也会打印在屏幕上,只要它完整,打印在文件上。
答案 0 :(得分:0)
在行尾尝试2>& 1,它应该有所帮助。或者以sh -x模式运行脚本以查看导致问题的原因。
希望这有帮助