暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

定时任务举例

蜜蜂点滴 2020-02-29
1563

一、定时任务

1、什么是定时任务:周期性的执行任务计划的软件,linux定时任务的常用软件crond。

2、作用:可用每天每小时按需求重复的执行一项工作。

3、怎么用

(1)系统定时任务计划

不用管理员干预,系统自动执行

#ls -l /var/log/messages*

-rw-------. 1 root root 1269616 Feb 28 05:28 /var/log/messages

-rw-------. 1 root root  614949 Feb  4 03:27 /var/log/messages-20200204

-rw-------. 1 root root 1650504 Feb  9 03:17 /var/log/messages-20200209

-rw-------. 1 root root  481143 Feb 16 19:43 /var/log/messages-20200216

-rw-------. 1 root root 1491546 Feb 22 18:53 /var/log/messages-20200223

查看系统cup:#sar

日志配置:#cat /etc/logrotate.conf

(2)用户定义定时任务

cron是定时任务软件名称

crond是服务进程名

crontab命令是用来设置定时任务规则的配置命令


相应配置任务首先启动crond:

开机启动:

#systemctl disable crond.service

#systemctl enable crond.service

定时任务存放的位置:#ll /var/spool/cron/ 

以当前用户作为文件名......

指定用户查看定时任务:#crontab -u user -l

编写定时任务的语法:分时日月周 文件;

特殊符号:

* 每或每一;

- 连续分割符,连续区间;

, 列举;

/n n是任意数字,每隔;

三、举例

举例1:

a.命令行执行成功

#echo "ninhao" >>/tmp/nihao.log

#cat /tmp/nihao.log

b.配置定时任务

#crontab -e

        * * * * * echo "oldboy">>/tmp/oldboy.log

#crontab -l

c.检查结果

检查:#tail -f /tmp/oldboy.log

举例2:

更新系统与互联网时间同步:#/usr/sbin/ntpdate ntp1.aliyun.com

配置定时任务:

每隔5分钟更新系统时间:

    */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null

或*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com>/dev/null 2>&1

/dev/null:黑洞设备

举例3:

每天晚上0点,把站点目录/var/www/html下的内容打包备份到/data目录下,并且要求每次生产不同的备份包名。

a.命令行

准备工作:tar zcvf /data/html_$(date+%F).tar.gz /var/www/html

b.配置

#crontab -e

00 00 * * * tar zcvf /data/html_$(date+\%F).tar.gz /var/www/html

错了,不执行,看错误日志:/var/log/cron

定时任务对%的要求,百分号要求用转义字符:\

优秀答案:

a.测试命令是否可行,命令行执行 先切换到目录下,再压缩

#cd /var/www

#tar zcf /data/html_$(date+%F).tar.gz ./htm

b.尽量用脚本文件实现

#mkdir /server/scripts -p

#cd /server/scripts/

编辑脚本:#vim bak.sh

         cd /var/www

         tar zcf /data/html_$(date+\%F).tar.gz ./htm

查看脚本:#cat bak.sh

执行脚本命令:#/bin/sh/server/scripts/bak.sh

c.编辑定时任务

#crontab -e

      00 00 * * * /bin/sh/server/scripts/bak.sh &>/dev/null

四、

定时任务的书写要领:

1、要加注释

2、所有定时任务尽量都以脚本形式执行

3、在执行的shell脚本前加上/bin/sh

4、定时任务中命令或脚本的结尾加&>/dev/null

5、在指定用户下执行相关定时任务

6、不要随意加参数打印输出 例如:-v参数

7、定时任务要放在规范路径下

8、规范操作规程,减少出错

9、配置定时任务中脚本中的命令用全路径

10、时间变量%号要用反斜线转义(只有定时任务里是命令时才需要)

11、若脚本中调用了系统环境变量,要重新定义

12、出错或无法执行,就检查/var/log/cron日志

运维规范:

安装软件:/server/tools

脚本位置:/server/scripts

编辑位置:/application/软件名字-版本,然后要软链接


文章转载自蜜蜂点滴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论