Vee*_*anu 18 scripting bash logrotate
测试文件
#!/bin/bash
echo "Hello World"
Run Code Online (Sandbox Code Playgroud)
测试2.sh
#!/bin/bash
while true
do
sh test.sh >> /script_logs/test.log &
done
Run Code Online (Sandbox Code Playgroud)
我想实现logrotate来控制日志文件的大小,那么如何实现logrotate,如果是上面的情况呢?
cas*_*cas 34
怎么用savelog?
它在 debian 和 RH 以及我所知道的几乎所有其他 linux 发行版中都可用。这是一个 /bin/sh shell 脚本,所以也应该在任何其他 unix 上运行。
例如,在编写任何要test.log运行的东西之前savelog -n -c 7 test.log。这将保留 test.log 的 7 个最新非空版本。默认情况下,它将压缩轮换日志(但可以使用 禁用-l)。
如果需要,您可以检查其大小,test.log并且仅savelog当它超过特定大小时才检查。
cur*_*ous 13
#!/bin/bash
touch /script_logs/test.log
MaxFileSize=2048
while true
do
sh test.sh >> /script_logs/test.log
#Get size in bytes**
file_size=`du -b /script_logs/test.log | tr -s '\t' ' ' | cut -d' ' -f1`
if [ $file_size -gt $MaxFileSize ];then
timestamp=`date +%s`
mv /script_logs/test.log /script_logs/test.log.$timestamp
touch /script_logs/test.log
fi
done
Run Code Online (Sandbox Code Playgroud)
我已经删除了“&”,因为它可能会导致问题。