ubuntu新增定时任务,删除日志文件
crontab是linux系统下自带的定时任务工具,用户可以使用crontab工具来定制自己的计划任务,crontab文件路径一般在 /etc/crontab。 如果没有请自行下载安装:
apt-get install cron
以下需要注意的是:如果你是在ubuntu下,命令就是cron,如果在centos或其他系统下,需要将命令中的cron改为crond。
crontab常用命令
#查看运行状态
systemctl status cron (或 service cron status)
#重启
systemctl restart cron (或 service cron restart)
#启动
systemctl start cron (或 service cron start)
#停止
systemctl stop cron (或 service cron stop)
新增定时任务
1、新增执行脚本
#1、创建定时任务示例文件夹
mkdir demo
#2、创建定时任务示例日志文件
mkdir demo/demolog
#3、编辑示例脚本
vi demo.sh
#4、写入demo.sh脚本示例内容 意思为找到/demo/demolog下的十天前的并且扩展名为.txt文件进行删除
find /demo/demolog -mtime +10 -name "*.txt" -exec rm -rf {} \;
脚本内容说明:
find:linux的查找命令,用户查找指定条件的文件
/demo/demolog:想要进行清理的任意目录
-mtime:标准语句写法(如果想删除全部-mtime +10可删除)
+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
“*.*”:希望查找的数据类型,”*.txt”表示查找扩展名为txt的所有文件,”*”表示查找所有文件,这个可以灵活运用
-exec:固定写法
rm -rf:强制删除文件,包括目录
{} \; :固定写法,一对大括号+空格+\+;
写完之后wq保存,使用 chmod +x demo.sh
赋予可执行权限。
2、添加定时任务去执行脚本
在root用户下,可以直接 vi /etc/crontab
文件进行添加任务脚本,而在其他普通用户下可以通过crontab –e 进行脚本的添加,效果都是一样的
crontab文件中内容不做说明,在这里引用一个其他大佬的文章,需要的请移步:https://www.cnblogs.com/kunpengit/p/4045343.html
直接在crontab的末尾加入一行执行语句就可以了
#解释:cron表达式 + 指定执行脚本的用户 + 执行脚本
0 1 * * * root sh /demo/demo.sh
考虑到定时任务可以有多个,所有将任务写成脚本形式,也可以省略创建执行脚本,直接在crontab后面添加:
0 1 * * * root find /demo/demolog -mtime +10 -name "*.txt" -exec rm -rf {} \;
添加完后保存文件,使用 service corn restart
重启服务即可