排程 crontab 简介
参考 : https://ubuntuqa.com/zh-tw/article/10392.html
设定一个定时启动程序
简介情境 : 写一支一直检查 系统状况程序 然后想设定 何时才检查那么可以用 Linux 提供的设置 crontab 登入 用户后输入 crontab -e ( 预设是 vi 编辑器 )开始编辑吧
常用crontab -l 查看自己的 crontabcrontab -u 名称 -l 显示特定使用者 crontabcrontab -e 编辑 crontabcrontab -u 名称 -e 编辑特定使用者 crontabcrontab -r 删除全部的 crontab
範例#every 3 minute run abc015*/3 * * * * . /u1/etc/chenv 2; sh abc015 >>/u1/123/app/4xx/abc015_log.log 2>&1#日期写log"/u1/123/app/4xx/$(date +"\%Y\%m\%d")_abc015.log" 2>&1#每小时执行程式* */1 * * * . /u1/etc/chenv 2; sh abc022 >> "/u6/123/sync_tmp/abc022_log/$(date +"\%Y\%m\%d")_abc022.log" 2>&1
注意事项
Linux 排程也不能设定太多 要根据系统负载 评估主要是因为 Linux 启动排程是呼叫 watch dog 来带起程序如太多 会在同一时间看到 有 一堆 watch dog 系统资源太低 很容易造成 整个 Linux 卡顿
watch dog
排程更新
ex - /var/spool/cron/root <<%%a*/1 * * * * sh /u3/bin/abc.sh.wq!%%
排程执行目录
登入 root 查看
/var/log/cron
搜寻想找的程序名称 , 会看到几点有运行
除了⼀般使⽤者各⾃的排程⼯作之外,
还有⼀类的是属于系统的排程⼯作,这类的设定写在
/etc/crontab 档案与 /etc/cron.d/ ⽬录下的各个设定档
多了⼀个使⽤者名称
限制使⽤者使⽤ crontab
系统安全性的考量,限制只有特定的使⽤者可以使⽤ crontab ,可以透过系统的 /etc/cron.allow 或 /etc/cron.deny 两个档案来设定。/etc/cron.allow这个档案存在,则只有被列在这里的帐号可以使⽤ crontab ,其余帐号皆禁⽌使⽤,也就是⽩名单。/etc/cron.deny如果这个档案存在,则被列在这里的使⽤者都禁⽌使⽤ crontab ,也就是⿊名单。/etc/cron.allow 与 /etc/cron.deny 设定档在列出帐号时,语法都相同,每⼀⾏写⼀个帐号名称。如果 /etc/cron.allow 与 /etc/cron.deny 两个设定档都不存在,则就只有系统管理者root 能够使⽤ crontab