如何将 Linux 命令输出打印到文件?

vij*_*had 4 linux rsync logging

我正在创建一个脚本来在两个系统之间同步我的重要文档。我希望我的脚本为最后一个操作生成一个日志文件。你能建议我一种方法来实现这一点。

问题:如果我使用 -v 标志执行 rsync 命令,它将在控制台上打印大量消息。有什么办法。那么,我可以将这些日志重定向到一个文件吗?

小智 5

使用>运算符:

rsync -v > log.txt

将 rsync 命令的输出写入名为log.txt.


Mar*_*ers 5

您可以调用脚本并将“标准输出”(AKA STDOUT)重定向到日志文件。使用“>>”附加到日志文件或使用“>”覆盖日志文件。如果文件不存在,则将创建该文件(如果其目录的权限允许)。如果该文件已经存在,请确保它可由您(或运行您脚本的任何人)写入。

如果您总是附加到日志文件而不是覆盖它,那么最好从一开始就确保某些内容会“旋转”您的日志文件,即将其移动到其他名称并删除旧的日志文件。如果日志文件对您的脚本是唯一的,您可以让脚本负责日志文件轮换。

通常,首选方法是使用重定向的 STDOUT 调用脚本,但有时您可能希望在脚本本身内为一个或多个命令执行重定向。您可以在 shell 脚本中的任何语句之后添加“>> logfile”以将该命令的 STDOUT 附加到日志文件。您可以将其更改为“2>&1 >> logfile”以将“标准错误”(AKA STDERR)STDOUT附加到日志文件。您通常不希望 STDERR 也转到日志文件,因为 STDERR 通常用于通知正在运行问题脚本的任何人/任何人。但在某些时候和情况下,您确实希望这样做。如果你喜欢,