3.22 系统定时任务Cron(d)服务与应用实践
suid
是针对二进制命令 或者程序的 ,不能用在shell类似脚本
用户或属主 对应的前三位权限x位上如果有s 表示具备suid的权限 用了suid 三位权限用s 就代表有了 管理员的权限,可任意操作
sgid
让不同的人创建文件属于相同的用户组,从而可以共享文件的权限
sticky
粘迨位 滤过
什么是定时任务
周期性的执行任务计划的软件,linux定时任务的常用软件 crond
为什么 要用定时任务
使用定时任务,可以每天,每小时按你需求重复的执行一性 工作 列如: 备份 都是0点以后 .2点爬起来备份,4点以后睡觉 需要写一个程序实现自动备份,然后让定时任务软件帮你执行。 好比闹钟。。。。可以追花姑娘
在哪用定时任务
用户定时任务计划
在linux系统中 cron是定时任务的软件名 crond 是服务进程名 crontab命令是
系统定时任务
不用我们管,系统自己做 也可以利用系统任务为管理员服务用来设置定时任务规则的
/etc/cron.daily/logrotate /etc/logrotate.cof
这两个文件 可以按天 切割日志,可以使用 logrotate
要想配置定时任务 ,首先启动crond
这样启动 crond systemctl status crond.service
大概是第四行 显示 active(running) 这是打开的状态
大概第二行 末尾有disabled 是开机自启
crontab
位置在 /var/spool/cron/
-l 列表 查看已经设置的定时任务crontab -l ==cat /var/spool/root
-e edit 编辑定时任务Crontab – e ==vim /var/spool/cron/root
-u user 查看特定任务下的 定时任务 语法格式 crontab -u 加名字 -l
10编写定时任务的语法:
第一列:分 minute (0-59)分组的意思
第二列:时 hour(0-23)
第三列:日 day of month (1-31)
第四列:月 month(1-12)
第五列:周 day
大家谨记 *分*时*日*月*周
特殊符号:
*表示每的意思 即每分 每秒 00 23 * * * cmd
-连续的分割符 连续区间 00 8-23 * * * cmd
,列举 1,2,3,4,8, 001,2,3,4,8, * * * cmd
生产环境下的定时cron 书写要领
为定时任务规则加必要的注释
所有的定时任务尽量都以脚本的形式执行
在执行的shell脚本 前加上/bin/sh
定时任务中命令或脚本的结尾加>/dev/null 2>&1
在指定用户下执行相关定时任务
生产任务计划程序中不要随意打印输出信息,有输出的想法去掉
配置定时任务要规范操作过程,减少出差
定时任务在脚本中程序命令及路径尽量用全路径
时间变量%号要用反斜线转义\(只有定时任务里是命令时需要)
若脚本中调用了系统环境变量,要重新定义
出错或无法执行 ,就检查/var/log/cron日志