Centos定时任务—清理日志脚本

创建脚本文件

vim cleanLog.sh

增加执行权限

chmod +x cleanLog.sh

必须有上面一步!!!如漏掉增加执行权限,文件没法运行,权限会不够!

按需添加或修改如下内容

#!/bin/bash
echo "开始清除日志文件"
sed -i '1,50d' /var/log/cron #清除定时任务记录
sed -i '1,50d' /var/log/xferlog #清除ftp记录
sed -i '1,50' /var/log/mariadb/mariadb.log #清除数据库日志
sed -i '1,50d' /var/log/secure #清除sshd信息
sed -i '1,50d' /var/log/firewalld
sed -i '1,50d' /var/log/httpd/access_log
sed -i '1,50d' /var/log/httpd/ssl_access_log
sed -i '1,50d' /var/log/httpd/ssl_error_log
sed -i '1,50d' /var/log/httpd/ssl_request_log
sed -i '1,50d' /var/log/messages #清除系统开机发生的错误
sed -i '1,50d' /var/log/tuned/tuned.log
sed -i '1,50d' /var/log/hawkey.log
sed -i '1,50d' /var/log/yum.log
sed -i '1,50d' /var/log/dnf.log
sed -i '1,50d' /var/log/dnf.rpm.log
sed -i '1,50d' /var/log/ntp.log
sed -i '1,50d' /var/log/audit/audit.log
history -c #清除历史执行命令
echo > /var/log/wtmp  #清除系统登录成功的记录
echo > /var/log/btmp #清除系统登录失败的记录
echo > /var/log/lastlog
rm -fr /var/log/boot.log-* /var/log/btmp-* /var/log/cron-* /var/log/maillog-* /var/log/messages-* /var/log/secure-* /var/log/spooler-* /var/log/xferlog-* /var/log/messages-* /var/log/multi-nic-util/*
rm -fr /var/log/httpd/access_log-* /var/log/httpd/error_log-* /var/log/httpd/ssl_access_log-* /var/log/httpd/ssl_error_log-* /var/log/httpd/ssl_request_log-*

注解:sed命令,清除前50行内容

echo命令清空日志内容

rm命令删除后缀以日期命名的日志文件

注意:以上日志清理并没有导致系统或者其他服务出错,但是部分日志文件最好不要删除,最好百度一下那个日志文件是用来干嘛的

echo命令清空日志内容 

rm命令删除后缀以日期命名的日志文件 

注意:以上日志清理并没有导致系统或者其他服务出错,但是部分日志文件最好不要删除,最好百度一下那个日志文件是用来干嘛的 

设置定时任务

crontab -e

设置每20天清理一次(日志清理太频繁不方便以后按日志排错)

0 0 */20 * * ./cleanLog.sh

这里也给出每3秒清理一次centos日志的代码,把 home/somedir/scripts.sh 的文件改成你自己的脚本位置就ok了

## For excuting scripts.sh every 3 seconds
*/1 * * * *  /home/somedir/scripts.sh
*/1 * * * * sleep 3 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 6 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 9 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 12 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 15 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 18 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 21 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 24 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 27 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 30 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 33 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 36 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 39 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 42 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 45 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 48 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 51 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 54 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 57 &&  /home/somedir/scripts.sh

保存退出,完成了,查看定时任务代码:crontab -l

执行一下这个命令:systemctl reload crond.service 

重启一下任务,让他执行