2019-03-22 课堂笔记 定时任务 介绍、语法、实践以及必会要领

sgid属组

sgid的作用就是让普通用户可以在执行某个设置了sgid位的命令时,

拥有和命令对应用户组(一般为root用户组)一样的身份和权限(默认)。


locate 搜索内容

locate搜索内容,默认从updatedb对应的数据库中查找

updatedb 更新locate查找内容对应的数据库。


sgid基于目录的作用:

让不同的人创建文件属于相同的用户组,从而可以互相共享文件的权限。


3W1H 框架

Linux系统定时任务:

1、什么是定时任务?

周期性的执行任务计划的软件,Linux定时任务的常用软件crond。


2、使用定时任务软件,可以每天,每小时按你需求重复的执行一项工作。

例如:备份 都是0点以后,2点爬起来备份,4点以后睡觉。

需要写一个程序实现自动备份,然后让定时任务软件帮你执行。


3、怎样用。


系统定时任务计划

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

也可以利用任务为管理员服务


用户定时任务

linux系统中

cron是定时任务的软件名

crond是服务进程名,真正实现定时任务服务

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

要想配置定时任务,首先启动crond服务

systemctl startcrond.service

systemctl stop crond.service

systemctl statuscrond.service

开启自启动:

systemctl disablecrond.service

systemctl enablecrond.service

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

内容存放哪里了。定时任务内容存放的位置/var/spool/cron/

以当前用户名作为文件名


-l 列表查看已经设置的定时任务

-e 编辑定时任务

-u  查看特定用户下的定时任务


编写定时任务的语法:

# Example of jobdefinition:

#.---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  | .---------- day of month (1 - 31)

# |  | |  .------- month (1 - 12) ORjan,feb,mar,apr ...

# |  | |  |  .---- day of week (0 - 6) (Sunday=0 or 7) ORsun,mon,tue,wed,thu,fri,sat

# |  | |  |  |

# * * * * *  (command to be executed)


共六列:

第一列:分minute (0 - 59)

第二列:时hour  (0 - 23)

第三列:日day of month (1 - 31)

第四列:月month (1 - 12) OR jan,feb,mar,apr ...

第五列:周day of week (0 - 6) (Sunday=0 or 7) ORsun,mon,tue,wed,thu,fri,sat

第六列:要执行的任务命令或程序

定时任务的特殊符号

* 表示的 每 或每一的意思

-  连续区间1-10

,  列举1,2,3,4,8

/n n是自然数字数字,即“每隔n单位时间”,例如:每10分钟执行一次任务可以写成


实践:

1、每分钟追加一次oldboy字符串到/tmp/oldboy.log里。


解答:大象放冰箱分三步

a.命令行执行成功。

[root@oldboyedu~]# echo "oldboy">>/tmp/oldboy.log

[root@oldboyedu~]# cat /tmp/oldboy.log

oldboy

[root@oldboyedu~]# echo "oldboy">>/tmp/oldboy.log

[root@oldboyedu~]# cat /tmp/oldboy.log

oldboy

oldboy

b.配置定时任务crontab -e 编辑配置

 [root@oldboyedu ~]# crontab -l

#####

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

c.检查

[root@oldboyedu~]# tail -f /tmp/oldboy.log


/dev/null 黑洞设备

MH370>/dev/null

&>/dev/null等价>/dev/null 2>&1

crontab -l

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


1命令行执行,尽量用脚本文件实现

2编辑定时任务

定时任务没有执行,出错了日志在哪里?

出错日志/var/log/cron

Mar 22 12:03:01 oldboyedu CROND[18770]:(root) CMD (tar zcvf /data/html_$(date +)


定时任务对%的要求,百分号要转义。\%

3检查正式结果


13.5生产环境下的定时Cron书写要领

要领1:为定时任务规则加必要的注释

要领2:所有的定时任务尽量都以脚本的形式执行

要领3:在执行的Shell脚本前加上/bin/sh

要领4:定时任务中命令或脚本的结尾加>/dev/null 2>&1

要领5:在指定用户下执行相关定时任务

要领6:生产任务计划程序中不要随意打印输出信息,有输出的想法去掉。

要领7:定时任务执行的脚本要存放到规范路径下

要领8:配置定时任务要规范操作过程,减少出错

要领9:定时任务脚本中程序命令及路径尽量用全路径

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

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

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


命令笔记

定时任务的命令

crontab的参数

-l  列表定时任务

-e  编辑定时任务

-u  查看特定用户下的定时任务

你可能感兴趣的:(2019-03-22 课堂笔记 定时任务 介绍、语法、实践以及必会要领)