一:编写shell脚本
[root@localhost home]# vim clean_log.sh
vim平时我们是用于打某个文件,但当没有这个文件的时候回直接创建一个这个文件
添加内容如下:
# 删除 /usr/local/cci/safety-tomcat/logs/下30天前,文件名称包含"201"的logs
find /usr/local/cci/safety-tomcat/logs/ -mtime +30 -name "*201?*" -exec rm -rf {} \;
# 清空 /usr/local/cci/safety-tomcat/logs/下的catalina.out
echo " " > /usr/local/cci/safety-tomcat/logs/catalina.out
给该shell附全部权限:
[root@localhost home]# chmod 755 clean_log.sh
备注:chmod 755 意思是该登录用户、他所在的组织和其他人都有最高权限,该文件可读可写可执行。
附权限后该shell脚本会是绿色的,代表可执行文件,其他文件颜色代表什么如下:
白色:表示普通文件;蓝色:表示目录;绿色:表示可执行文件;红色:表示压缩文件;浅蓝色:链接文件;红色闪烁:表示链接的文件有问题;黄色:表示设备文件;灰色:表示其它文件;
二:设置定时器执行clean_log.sh脚本
[root@localhost home]# crontab -e
添加以下内容
0 0 1 * * /home/clean_log.sh
三:重启定时任务
[root@localhost home]# service crond restart
其他2个命令:
service crond start //启动服务
service crond stop //关闭服务
四:使用 crontab -l 命令查看是否设置成功
[root@localhost home]# crontab -l
0 0 1 * * /home/clean_log.sh
通常执行脚本文件的方式有三种方式如下:
1. bash 脚本文件名称
2. sh 脚本文件名称
3. /路径/脚本文件名称
注意:1和2 通过命令执行脚本,不需要赋予文件权限,但是第3种需要先执行 chmod 755 脚本文件 进行赋权
crontab的常用命令
通过crontab可以设定程序的执行时间,如让程序在每天的6点,或者每个月最后一天早上6点执行。
crontab -l 列出时间;
crontab -e编辑时间;
crontab -d删除时间;
crontab文件的格式是:M H D m d CMD。
一个6个字段,其中最后一个CMD就是所要执行的程序,如haha.sh。
M:分钟(0-59)
H:小时(0-23)
D:日期(1-31)
m:月份(1-12)
d:一个星期中的某天(0-6,0代表周日)
这5个时间字段用空格隔开,其值可以是一个数字,也可以用逗号隔开的多个数字(或其他如","或者"/") ,如果不需设置,则默认为“*”。
特别注意:linux中的crontab中的cron表达式和我们idea里面定时器用的cron表达式是不一样的。我们代码里面定时器用的cron表达式可以直接用cron表达式生成器生成,但是会有6位,而crontab的表达式只有5位,因为linux中crontab的cron表达式是没有秒的。cron表达式生成器会生成?号,而linux中crontab的cron表达式是不允许?号的。如果大家不想根据上面的公式自己去写,可以用cron表达式生成器生成。但是生成后的表达式把第一位去掉,中间要有?就换成*。这个前提是生成的表达式中是没有字母的,要有字母的话(很少很少),那还是自己组装吧。