Day17-课堂笔记-Linux系统定时任务

一、Linux系统特殊权限位

1、suid

1)suid功能是针对二进制命令或程序的,不能用在Shell等类似脚本文件上。

2)用户或属主对应的前三位权限的x位上,如果有s(S)就表示具备suid权限。

3)suid的作用就是让普通用户可以执行某个设置了suid位命令或程序时,拥有和命令对应属主(一般为root管理员)一样的身份和权限(默认)。

4)二进制命令程序需要有可执行权限x配合才行。

5)suid对应的身份和权限仅在程序命令执行过程中有效。

6)suid是一把双刃剑,是一个比较危险的功能,对系统安全有一定的威胁,企业里用户授权可以使用sudo等代替sgid功能。

7)在进行安全优化时,系统中默认设置了suid权限的命令要取消掉。

2、sgid

对于二进制命令或者程序来说,sgid的功能和suid基本相同,唯一的区别是suid是获得命令所属用户的身份和权限,而sgid是获得命令的所属用户组的身份和权限。

3、粘滞位 sticky bit 

Day17-课堂笔记-Linux系统定时任务_第1张图片

二、Linux系统定时任务

1、定时任务概念

周期性的执行任务计划的软件。

Linux定时任务的常用软件:Crond

2、作用

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

例如:备份。

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

3、应用

1)系统定时任务计划

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

b.也可以利用系统任务为管理员服务。

[root@oldboyedu ~]# ll /var/log/messages

-rw-------. 1 root root 1042616 Mar 22 16:10 /var/log/messages

[root@oldboyedu ~]# ll /var/log/secure

-rw-------. 1 root root 20034 Mar 22 16:03 /var/log/secure

2)用户定时任务计划

a.在Linux系统中:

cron是定时任务的软件名。

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

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

b.配置定时任务前,需先启动crond服务。

systemctl start crond.service

systemctl stop crond.service

systemctl status crond.service

开机自启动:

systemctl disable crond.service 

systemctl enable crond.service 

3)crontab命令第用来设定定时任务规则的配置命令

内容存放位置:/var/spool/cron

以当前用户名作为文件名

-l list 列表 查看已经设定的定时任务规则

-e edit 编辑定时任务

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

root:crontab -l = cat /var/spool/cron/root 

crontab -e = vim /var/spool/cron/root 

三、编写定时任务的语法

# Example of job definition:

# .---------------- 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) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed

1、共六列:

1)第一列:分 minute (0-59)

2)第二列:时 hour (0-23)

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

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

5)第五列:周 day of week (0-6)sun,mon

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

2、特殊符号

1)*表示‘每或每一’的意思

00 23 * * * cmd :每天23时00分执行cmd任务

2)- 连续区间 1-10

00 8-23 * * * cmd:每天8到23时00分执行cmd任务

3), 列举 1,2,3,8

4)/n n代表数字,表示“每隔单位时间”

例如:每10分钟执行一次任务

*/10 * * * * cmd

四、生产环境下的定时Cron书写规范要领

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

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

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

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

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

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

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

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

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

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

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

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

其他规范:

1、脚本位置:/server/scripts

软件位置:/server/tools

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

你可能感兴趣的:(Day17-课堂笔记-Linux系统定时任务)