我的任务是编写一个简单的 bash 脚本,该脚本又从 Websphere 应用程序服务器 (WAS) 执行管理命令。我将其放入 /etc/cron.daily 文件夹中,希望它能够每天执行(我不知道什么时候执行)。不过,我希望系统启动此脚本的足迹,因此我添加了 echo 语句。
#!/bin/bash
[foo command to execute]
echo "foo command is executed" > /bpm/v8/logs/foo.log
现在我有三个问题。
- 有来自 WAS 的系统日志文件 (SystemOut.log)。是否可以将 echo 的输出写入 SystemOut.log 文件?
- 如果没有,有没有办法可以将日期/时间戳附加到 foo.log 文件中?
- 如何防止 foo.log 文件占用磁盘空间?我知道 SystemOut.log 文件会不时地被压缩并保存有日期/时间戳。我认为某种日志旋转(?)程序可以做到这一点。
此问题的背景是在 rhel v6 64 位机器中。
答案1
您的问题的答案:
如果 SystemOut.log 文件由运行该脚本的相同或更高权限的帐户拥有,是的,您可以写入它,但我建议不要这样做,因为有一天您可能需要将该日志提供给供应商以排除问题日志中的外来条目可能会让他们失望,在最坏的情况下,他们可能会拒绝帮助您,因为文件完整性受到损害(可能性很大,但并非不存在)
只要文件/目录所有权和权限允许,您就可以将其写入任何您想要的位置。
您可以将此日志文件添加到 logrotate 范围,它将按照所需的时间表进行回收。或者,您可以在回显日志行后添加几行来扫描文件,如果文件大于 10K 行,则修剪前 9K 行并将它们以压缩形式存储在某个位置。这完全取决于你。