如何将 TAR 操作写入日志文件?
tar -czvf arh.tar.gz public_html > 1.log
TAR -czvf 起作用了,谢谢大家!
现在在 bash 脚本中:
for i in */ ; do
sitefolder="$HOME/domains/${i%%/}/public_html"
if [ -d "$sitefolder" ]
then
( tar -czvf $tbackups/$i".tar.gz" public_html >> $logs/backups.log ; )
fi
done
我怎样才能在日志文件中进行输出,例如:
domain.com 成功归档 domain1.com 成功归档等等。
答案1
关键问题是
tar -czf arh.tar.gz public_html 1
根本不会产生任何输出。因此你至少需要
tar -czvf arh.tar.gz public_html 1
创建任何输出。但由于输出到 STDERR而不是STDOUT,因此您需要
tar -czvf arh.tar.gz public_html 1 2> 1.log
捕获日志文件中的任何输出
通常,提出新问题比继续讨论同一话题要好,但我们还是开始吧
for i in */ ; do
sitefolder="$HOME/domains/${i%%/}/public_html"
if [ -d "$sitefolder" ]; then
echo "Backing up ${i%%/}" >> $logs/backups.log
tar -czvf $tbackups/$i".tar.gz" public_html 2>> $logs/backups.log
echo "Backup of ${i%%/} successfull" >> $logs/backups.log
fi
done
答案2
tar czvf arh.tar.gz public_html 1 >1.log 2>&1
我添加了一个v
,因此它很详细,即它将输出它正在 tarring 的文件/目录列表,然后它将进入1.log
。
您确定要将两者public_html
和名为 的文件/目录一起打包吗1
?因为上面写着
我还删除了-
选项前面的(tar 与该命令的非常旧的版本兼容,该版本没有使用-
,因此它默认将收到的第一个参数解释为选项。这样兼容性更强一些。