2、编写定时关闭和打开程序的脚本或命令
3、crontab的用法
第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令
下面是crontab的格式:
分 时 日 月 星期 要运行的命令或脚本
30 21 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache
linux下的crontab服务: 1、crontab 是用来让使用者在固定时间或固定间隔执行程序之用 在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现。 以某一频率执行任务 linux缺省会启动crond进程,crond进程不需要用户启动、关闭。 crond进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入cron的调度配置文件中。 cron的调度文件有以下几个: 1. crontab 2. cron.d 3. cron.daily 4. cron.hourly 5. cron.monthly 6. cron.weekly 如果用的任务不是以hourly monthly weekly方式执行,则可以将相应的crontab写入到crontab 或cron.d目录中。 示例: 每隔一分钟执行一次脚本 /opt/bin/test-cron.sh 可以在cron.d新建脚本 echo-date.sh 内容为 */1 * * * * root /opt/bin/test-cron.sh 2、cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,如果它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 你也可以将这个服务在系统启动的时候自动启动: 在/etc/rc.d/rc.local这个脚本的末尾加上: /sbin/service crond start 现在Cron这个服务已经在进程里面了,我们就可以用这个服务了 查看服务是否已经运行用 ps -ax | grep cron 3、crontab命令 查看该用户下的crontab服务是否创建成功, 用 crontab -l 命令 命令 which php 查看linux下安装的php的路径 cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明: crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 crontab -l //列出某个用户cron服务的详细内容 crontab -r //删除没个用户的cron服务 crontab -e //编辑某个用户的cron服务 比如说root查看自己的cron设置:crontab -u root -l 再例如,root想删除fred的cron设置:crontab -u fred -r 在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e 进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >>/tmp/ls.txt 任务调度的crond常驻命令crond 是linux用来定期执行程序的命令。当安装完成 *** 作系统之后,默认便会启动此 任务调度命令。crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 crontab命令选项: -u指定一个用户 -l列出某个用户的任务计划 -r删除某个用户的任务 -e编辑某个用户的任务 4、cron文件语法: 分 小时日 月 星期 命令 0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务) 5、 新增调度任务 新增调度任务可用两种方法: 1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。 2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。 6、 查看调度任务 crontab -l //列出当前的所有调度任务 crontab -l -u jp //列出用户jp的所有调度任务 7、 删除任务调度工作 crontab -r //删除所有任务调度工作 8、 任务调度执行结果的转向 例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中 30 5 * * * ls >/jp/test 2>&1 注:2>&1 表示执行结果及错误信息。 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/ //使用者运行的路径,这里是根目录 # run-parts 01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本 02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行 /etc/cron.weekly内的脚本 42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本 大家注意”run-parts”这个参数了,如果去掉这个参数的话,后面就可以写::要运行的某个脚本名,而不是文件夹名了。 总结: 编写定时任务的两种方式:1.sudo vim /etc/crontab 2. sudo crontab -e 查看定时任务的两种方式:1.sudo cat /etc/crontab 2.sudo crontab -l */1 * * * * appuser cd /app/webserver/website/api-cb.chuchujie.com/master/current/script/ &&./back_coupon.sh 2 10 >>/dev/null 2>&1 查看定时任务是否运行: sudo tail -f /var/log/cron //定时任务日志(查看刚才设置的任务是否执行) 注:脚本有可执行权限 sh a.sh(不需要执行权限) ./sh (需要执行权限) 1.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别的。./filename是因为当前目录没有在PATH中,所有"."是用来表示当前目录的。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)