linux下设置定期执行需要root权限的sh文件
1、准备好一个shell文件
比如我这个叫clean.sh,位于/home/admin/gdhysthj/clean.sh
2、首先将shell文件赋权为可执行文件
chmod 777 clean.sh
3、切换为超级管理员
su
4、设置定时器
crontab -e
5、回车后,进入一个类似vim的界面,在里面输入:
0 0 * * * sh /home/admin/gdhysthj/clean.sh
意思是每天0点0分即执行这个clean.sh。注意 “00***” 之间有空格隔开。
这个定期的设置符号,含义如下:
* * * * * 命令
分 时 日 月 周 要执行的命令
第1列表示分钟 00~59
第2列表示小时 00~23(0表示0点)
第3列表示日期 01~31
第4列表示月份 01~12
第5列标识号星期 0~6(0表示星期天)
第6列要运行的命令
注意这是linux下的cron表达式。貌似在java中,第一列是代表秒,依次是:
秒 分 小时 日期 月份 星期 年
有关时间列,可以采用 n/offset 的方式来代表。前面的n代表第几,offset代表间隔。比如:
每隔10分钟一次:
*/10 * * * * command
每隔10小时执行一次
0 */10 * * * command
为避免不必要的混乱,如果更大一级的时间列使用了具体值,那么前面小一级的时间列就避免使用通配符,比如
每小时一次:
*/60 * * * * command 正确
0 */1 * * * command 正确。每隔1小时执行,在0分钟执行(执行1次)。
* */1 * * * command 错误,据说会每分钟都执行。从表达式本身来看,应该是每隔1小时执行,执行的时候每分钟都执行。
参考文章:
Linux 定时执行shell 脚本
浙公网安备 33010602011771号