linux下每天打包分类日志/linux定时执行脚本
2023-12-28 14:11:28
有时候日志,一个月下来就堆积了几百mb,打开时非常卡,定位也不方便,如何在linux下,每天更新新的日志,将前一天的日志打包成如下?
用最简单的方法完成这个目标
以我的日志名为 server.log且日志在/var/log/neutron/目录下为例子:
#!/bin/bash
# 获取当前日期
today=$(date +%Y%m%d)
# 获取前一天的日期
yesterday=$(date -d yesterday +%Y%m%d)
# 检查 neutron.log 文件是否存在
if [ ! -f /var/log/neutron/server.log ]; then
echo "neutron.log 文件不存在"
exit 1
fi
# 检查 neutron.log 文件的大小是否为零
if [ -s /var/log/neutron/server.log ]; then
# 将 neutron.log 文件前一天的日志打包成 server{yesterday}.log 文件
mv /var/log/neutron/server.log /var/log/neutron/server${yesterday}.log
else
echo "neutron.log 文件为空"
touch /var/log/neutron/server.log
fi
将该脚本保存为一个名为 backup_log.sh
的文件。以下是设置脚本执行的示例:
可以直接在命令行敲/var/log/neutron/backup_log.sh 看看有没有创建成功,再进入下一步定时脚本
这里要注意 chmod -R 777?/var/log/neutron/backup_log.sh?不然没有权限也是执行不了的
然后接下来在命令行执行
# 将脚本设置为每天 0 点执行
crontab -e
# 会进入编辑文件
# 在末尾添加以下内容
0 0 * * * /var/log/neutron/backup_log.sh
在 crontab 文件中,每个任务都由六个参数组成,分别表示:
- 分钟:0 到 59
- 小时:0 到 23
- 日期:1 到 31
- 月份:1 到 12
- 星期:0 到 7,其中 0 表示星期日
- 命令:要执行的命令
执行上述命令后,脚本将每天 0 点执行一次,并将 /var/log/neutron/server.log 文件前一天的日志打包成 /var/log/neutron/server{yesterday}.log 文件。
文章来源:https://blog.csdn.net/long_songs/article/details/135265038
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!