linux定时命令——crontab
定期清理实际上是定期执行一次.sh
脚本。
这需要用到crontab
命令
在crontab -e
里写上以下命令:
* * 1 * * bash [路径:要定期执行的.sh文件所在路径] #用bash来定期执行.sh文件。。这句命令表示每隔一天执行一次脚本
例如:
这里的* * * * *表示每分钟执行一次这个脚本
crontab
命令
crontab命令被用来提交和管理用户的需要周期性执行的任务,当安装完操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
参数:
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称;
minute hour day month week command # 分 时 日 月 周
其中:
minute:表示分钟,可以是从0~59之间的任意数字
hour:表示小时,可以是从0~23之间的任意数字
day:表示日期,可以是从1~31之间的任意数字
month:表示月份,可以是从1~12之间的任意数字
week:表示星期,可以是从0~7之间的任意数字
command:要定期执行的命令
在以上各个字段中,还可以使用一下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其他字段的制约条件后每月都执行该命令操作
逗号(,):可以用逗号隔开的值制定一个列表范围,例如,“1,2,5,7,8,9”
短杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
斜线(/):可以用斜线指定时间的间隔频率,例如“0-23/2”表示每两个小时执行一次。同时斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
解决crontab -e
写入命令不生效
crontab -e
的默认箭头指向nano,进入crontab -e界面后,界面的所有文字都呈白色,如果在里面写命令是不生效的(因为crontab的默认值是nano)。
解决方案:在.bashrc
中写以下命令:
export EDITOR=vim