Bash tar 并输出到日志文件

Bash tar 并输出到日志文件

如何将 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 与该命令的非常旧的版本兼容,该版本没有使用-,因此它默认将收到的第一个参数解释为选项。这样兼容性更强一些。

相关内容