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 脚本

在线crontab每1小时执行一次解析验证

CRON 表达式详解

posted on 2023-03-03 19:01  左直拳  阅读(0)  评论(0)    收藏  举报  来源

导航