Linux 定时任务优化集群日志获取流程
在处理服务器日志时,我们曾经面临诸多挑战。业务数据量巨大,系统一旦重启,日志便会丢失。此外,客户反馈问题存在时间差,导致我们收到问题时,当天的日志往往难以获取,这给问题排查和系统维护带来了极大的阻碍。过去,我们获取服务器日志的方式是在多台服务器的不同节点上手动操作,过程繁琐耗时,严重影响了工作效率。尤其是在集群架构的工作环境中,这种方式的弊端更加明显。
为了改善这一状况,我们利用 Linux 的定时任务功能,编写了两个脚本,实现了自动化的定时取日志操作,并且只备份两天的日志,有效节省了存储空间。
假设我们的日志存储在 /data/yonyou/home/nclogs 目录下,下面是实现这一功能的具体步骤:
编写取日志脚本

编写清理旧日志脚本

设置定时任务
使用 crontab 来设置定时任务,每天下午六点三十执行 copy_logs.sh 和 clean_logs.sh 脚本。

给脚本添加执行权限
chmod +x /data/nclogbackup/copy_logs.sh
chmod +x /data/nclogbackup/clean_logs.sh
这样就可以实现每天下午六点三十自动执行备份日志的任务,每天晚上11点自动清理两天前的日志,只保留两天的日志文件夹。