开机自动启动服务
Centos7:systemctl is-enabled "servicename"
systemctl enabled "servicename"(设为开机启动)
Centos6:chkconfig --list "servicename"
chkconfig --add "servicename"(1 设为开机启动)
chkconfig "servicename" on(2 设为开机启动)
计划任务
at:atd服务,适用于一次性的计划任务
at [option] 时间(默认情况下所有的标准输出都不会显示,执行结果会以邮件方式发送在)
建议:如果脚本要放到计划任务中执行,要将执行结果输入到/dev/null中,否则会产生大量的垃圾邮件
at "time" wall 10:00 clock(到了10:00广播10:00到了 Ctrl -d保存退出)
/var/spool/at下存有计划任务
-l 查看计划任务
-c "任务编号" :显示详细的任务信息
-d "任务编号"或 atrm "任务编号":删除指定任务编号
-V 查看当前atd服务版本
由于at是交互式程序,当需要脚本来创建计划任务的时候则可以使用重定向输入:at 12:00 <
-f "文件名" 将文件内容输入到at中
-m 当计划任务完成后判断是否成功
TIME:定义出什么时候进行at这项任务的时间
HH:MM[yyyy-mm-dd]定义年月日
noon,midnight,teatime(4pm)
tomorrow
now+#{min,hours,days,weeks}
at now+20min(20分钟后执行,20分钟后的整数时间,其他时间相似于这个)
白名单:at.allow(默认不存在)
黑名单:at.deny(默认存在)
如果要使普通用户不能执行at,则编辑/etc/at.deny,将要限制的用户加入这个文件即可
如果一个用户既在at.deny中也在at.allow(白名单)中则是允许执行
当有白名单at.allow这个文件后,就意味着所有不在at.allow文件中的普通用户统统拒绝
如果没有白名单也没有黑名单则普通用户都没有权限执行at
周期性计划任务cron
/var/spool/cron中存放创建的计划任务
/var/log/cron中存放的是cron的日志
crond服务依赖于一个cronie(主程序包)的包,提供crond服务,包含crond服务以及配置文件
cronie-anacron辅助程序包,rpm -ql cronie-anacron,会列出一系列目录,当中/etc/anacrontab是配置文件
/etc/cron.daily存放每天执行的任务
crontab是计划任务非常重要的一个配置文件
系统计划任务:/etc/crontab
分钟 小时 日 月 周(0 or 7都表示周日)
*/10 * * * * "username" "exec command" (每十分钟执行)
每月的号数与星期几同时存在默认是或的关系
@reboot 重启之后执行
@yearly 0 0 1 1 *(每年一月一号0点0分)
@annually 0 0 1 1 *(一月一号0点0分执行)
@monthly 0 0 1 * *(每月1号0点0分执行)
@weekly 0 0 * * 0(每个周日0点0分执行)
@daily 0 0 * * *(每天的0点0分执行)
@hourly 0 * * * *(每小时整执行)
* * * * *(每分钟执行)
在计划任务中,%符号有着特殊意义
/etc/cron.d/中可以存放一系列计划任务文件
Centos6:/etc/cron.daily/tmpwatch中用来定时清除临时文件的
Centos7:systemctl status systemd-tmpfiles-setup(查看清除临时文件的程序状态)
用户计划任务:
crontab -e(普通用户创建计划任务,默认打开的是vi程序,没有颜色,编辑变量export EDITOR=vim即可)
crontab -l(查看计划任务)
crontab -l -u 'username' 查看指定用户的计划任务
crontab -r -u 'username' 删除指定用户的计划任务
crontab -i -r 出现是否删除的提示信息
控制用户执行计划任务:
/etc/cron.{allow,deny}
sleep可以实现每几秒实现一次
sleep 10;command(每10s执行一次)