linux下定时执行脚本[通俗易懂]

2022-09-09 15:03:43 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

1.安装crontab

yum install vixie-cron

yum install crontab

2.启动crontab服务

service crond start

用以下的方法启动、关闭这个cron服务: service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置

查看crontab运行状态

service crond status

3.加入开机自动启动: chkconfig –level 35 crond on 或chkconfig crond on

4.编写脚本

touch /home/sq.sh 在home目录下新建sq.sh脚本

编辑脚本并写入命令执行语句

vi /home/sq.sh

#! /bin/bash 是必须要写的,表示要是/bin/bash这个执行脚本的命令执行接下来写的脚本, echo “hello world !!”表示想前端打印一句话即输出语句,>>表示将语句输出到指定路径

脚本编写完成后,.通过chmod命令赋予该脚本的执行权限chmod 777 sq.sh,否则没有执行权限

5.添加任务调度

crontab -e进入添加页面,添加*/1 * * * * /home./sq.sh表示每分钟执行一次改脚本

输入完毕后输入:wq保存退出

6.crontab -l 查看已经添加的任务调度

7.重启任务调度服务开始执行任务调度

/etc/init.d/crond restart

8.查看任务调度是否生效

tail -f /home/sq_nohup.out

备注:

minute hour day month dayofweek command

minute – 从0到59的整数

hour – 从0到23的整数

day – 从1到31的整数 (必须是指定月份的有效日期)

month – 从1到12的整数 (或如Jan或Feb简写的月份)

dayofweek – 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)

command – 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)

root表示以root用户身份来运行

run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本

对于以上各语句,星号(*)表示所有可用的值。例如*在指代month时表示每月执行(需要符合其他限制条件)该命令。 整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4指定数值由逗号分开。如:3,4,6,8表示这四个指定整数。

符号“/”指定步进设置。“/<interger>”表示步进值。如0-59/2定义每两分钟执行一次。步进值也可用星号表示。如*/3用来运行每三个月份运行指定任务。

例:每天早上6点

1

0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

例:每两个小时

1

0 */2 * * * echo "Have a break now." >> /tmp/test.txt

例:晚上11点到早上8点之间每两个小时,早上八点

1

0 23-7/28 * * * echo "Have a good dream:)" >> /tmp/test.txt

例:每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

1

0 11 4 * 1-3 command line

例:1月1日早上4点

1

0 4 1 1 * command line

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160697.html原文链接:https://javaforall.cn

0 人点赞