作业管理及任务计划

①作业管理
②同步服务器时间
③任务计划

作业管理
     Linux的作业控制
               前台作业:通过终端启动,且启动后一直占据终端
               后台作业:可通过终端启动,但启动后即转入后台运行
    让作业运行于后台
               (1)运行中的作业: Ctrl+z
               (2)尚未启动的作业: command &后台执行
                    后台作业虽然被送往后台运行,但其依然于终端相关;退出终端,将关闭后台作业。
    将后台作业送往后台运行,剥离于终端的关系
               nohup command &> /dev/null &
               screen; command
     查看当前终端所有作业:jobs编号
     作业控制:
               fg[后台编号]:把指定的后台作业调回前台
               bg[后台编号]:让送往后台的作业在后台继续运行
               kill[后台编号]:终止指定的作业
     并行运行:同时运行多个进程,提高效率
               方式1:将多条命令写进脚本并在命令尾部加&,运行脚本
               方式2:(command1 &);(command2 &);(command3 &)
               方式3:{command1 & command2 & command3 &}
     执行长时间任务时防止网络中断造成操作中断
               方法1:剥离命令与终端的联系,终端中断后进程将转移至1进程上,再恢复
                              nohup COMMAND &>/dev/null &
               方法2:开启一个screen会话,重新进入后screen -r即可恢复
                              screen;COMMAND;screen -r 恢复
—————————————————————————————————————————-
同步服务器时间
ContOS6
          /tec/ntp .conf #时间同步配置文件
                         server IP iburst #配置文件里添加同步IP服务器
          ntpdate IP #和服务器时间同步
          service ntpd start #开启同步时间服务
          chkconfig ntpd on #开机自动启动
ContOS7
          /etc/chrony.conf #时间同步配置文件
                         server IP iburst #配置文件里添加同步IP服务器
          ntpdate IP #和服务器时间同步
          systemctl start chronyd #开启同步时间服务
          systemctl enalbe chronyd #开机自动启动
—————————————————————————————————————————-
任务计划
     Linux任务计划,周期性任务执行
               未来的某时间点执行一次任务:at,batch(系统自行选择空闲时间去执行此处指定的任务)
                          systemctl status atd #ContOS7查看任务是否开启
               周期性运行某任务:cron
               cronie包:主程序包
               cronie-anacron包:cronie的补充程序,用于监控cronie任务执行状况,如果cronie中的任务在过去该运行时间点未能正常运行,则anacron会随后启动一次
               croutabs包:包含CentOS提供系统维护任务
                          systemctl status crond #ContOS7开启计划任务服务
                          service crond status #ContOS6开启计划任务服务
at命令:未来的某时间点执行一次任务
          语法:at [option] time
          常用选项
                    -V: 显示版本信息
                    -l: 列出指定对垒中等待运行的作业;相当于atq
                    -d: 删除指定的作业
                    -c: 查看具体作业任务
                    -f /path/from/somefile: 从指定的文件中读取任务
                    time: 定义什么时候进行at 这项任务的时间
                    -m: 当任务被完成之后,强制给用户发送邮件,即使没有标准输出
                              /etc/at.deny #计划黑名单
                              /etc/at.allow #计划白名单(默认不存在)
                              /var/spool/at #计划任务存放目录
          小结
                    作业执行命令的结果中的标准输出和错误以邮件通知给相关用户
                    尽量计划任务不要带有标准输出信息,以免过多产生垃圾内存
                              如果没有白名单的时候 除了黑名单的用户都能执行计划任务
                              如果白名单存在,只有白名单用户才能执行计划任务
                              如果黑名单里的用户和白名单重复,以白名单为基准
                              如果两个文件都不存在,只有root可以执行 at 命令
/etc/crontab:系统维护作业
          计划任务的格式
                    # * * * * * user-name command to be executed
                    分钟 小时 日 月 周 身份 命令
          时间格式
                    @reboot 重启时执行
                    @yearly 0011*
                    @annually 0011*
                    @monthly 001**
                    @weekly 00**0
                    @daily 00***
                    @hourly *****
cronteab命令:用户cron任务
          计划任务的格式
                    # * * * * * command to be executed
                    分钟 小时 日 月 周 命令
          语法:crontab []
          参数
                    -l 列出所有任务
                    -e: 编辑任务
                    -r: 移除所有任务
                    -i: 同-r一同使用,以交互式模式移除指定任务
                    -u user 仅root可运行,指定用户管理cron任务
          控制用户执行计划任务:/etc/cron.{allow,deny}#黑名单,白名单与at相同
          日志目录:/var/log/cron
          run-parts [路径]:指定路径下所有脚本都会运行
anacron系统
          运行计算机关机时cron不运行的任务,CentOS6以后版本取消anacron服务,由crond服务管理
          对笔记本电脑、台式机、工作站、偶尔要关机的服务器及其它不一直开机的系统很重要对很有用
          配置文件:/etc/anacrontab,负责执行/etc/ cron.daily /etc/cron.weekly /etc/cron.monthly中系统任务。
          字段1:如果在这些日子里没有运行这些任务……
          字段2:在重新引导后等待这么多分钟后运行它
          字段3:任务识别器,在日志文件中标识
          字段4:要执行的任务
          由/etc/cron.hourly/0anacron执行
          当执行任务时,更新/var/spool/anacron/cron.daily 文件的时间戳
sleep命令:休眠
          语法:sleep NUMBER[SUFFIX]…
                    SUFFIX:
                              s: 秒, 默认
                              m: 分
                              h: 小时
                              d: 天
          主要用于写在脚本里每多长时间执行一次命令,或等待前面运行程序过程
总结
          一次性作业使用at,重复性作业使用crontab
          没有被重定向的输出会被邮寄给用户
          根用户能够修改其他用户的作业
          对于cron任务来说,%有特殊用途;如果在命令中要使用%,需要转义或使用单引号括起来
          系统计划任务写在配置文件里只能cat /etc/crontab 查看
          cronteab -l命令只能查看使用-e 选项创建的计划任务
          相当于cat /var/spool/cron/

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97617

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班