计划任务服务程序

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

计划任务服务程序

# 学习目标 配置计划任务 # 业务场景 在指定的时间段自动启用或停止某些服务或命令,从而实现运维的自动化。 # 学习内容 计划任务分为一次性计划任务与长期性计划任务,大家可以按照如下方式理解。 一次性计划任务:今晚 11 点 30 分开启网站服务。 长期性计划任务:每周一的凌晨 3 点 25 分把/home/wwwroot 目录打包备份为 backup.tar.gz。 顾名思义,一次性计划任务只执行一次,一般用于满足临时的工作需求。我们可以用 at 命令实现这种功能,只需要写成“at 时间”的形式就可以。如果想要查看已设置好但还未执行的一次性计划任务,可以使用“at -l”命令;要想将其删除,可以用“atrm 任务序号”。在 使用 at 命令来设置一次性计划任务时,默认采用的是交互式方法。例如,使用下述命令将系统设置为在今晚 23:30 分自动重启网站服务。 ``` [root@kingdee ~]# at 23:30 at> systemctl restart httpd at> 此处请同时按下 Ctrl + D 组合键来结束编写计划任务 job 1 at Sun Dec 10 23:30:00 2023 [root@kingdee ~]# at -l 1 Sun Dec 10 23:30:00 2023 a root ``` ![image.webp](/download/0100a3cb75241e244cb7b8d1635379bfea8d.webp) 如果想挑战一下难度更大但简捷性更高的方式,可以把管道符放到两条命令之间,让 at 命令接收前面 echo 命令的输出信息,以达到通过非交互式的方式创建计划一次性任务的目的。 ![image.webp](/download/0100f20d9920525b4e4a8f578bc00de11e2c.webp) 如果我们不小心设置了两个一次性计划任务,可以使用下面的命令轻松删除其中一个: ![image.webp](/download/0100abe9434918134ff9b3bcb175613acfa5.webp) 如果我们希望 Linux 系统能够周期性地、有规律地执行某些具体的任务,那么 Linux 系统中默认启用的 crond 服务简直再适合不过了。创建、编辑计划任务的命令为“crontab -e”,查看当前计划任务的命令为“crontab -l”,删除某条计划任务的命令为“crontab -r”。另外,如果您是以管理员的身份登录的系统,还可以在 crontab 命令中加上-u 参数来编辑他人的计划任务。 这是使用 crond 服务设置任务的参数格式。 ![image.webp](/download/01004aa2441108464889950558ba2b361f22.webp) 需要注意的是,如果有些字段没有设置,则需要使用星号(*)占位,如下图所示。 ![image.webp](/download/01006bd8db51a1114616856e7ee3b8faa4c3.webp) 假设在每周一、三、五的凌晨 3 点 25 分,都需要使用 tar 命令把某个网站的数据目录进 行打包处理,使其作为一个备份文件。我们可以使用 crontab -e 命令来创建计划任务。为自己创建计划任务无需使用-u 参数,具体的实现效果的参数如 crontab -l 命令结果所示: ![image.webp](/download/01009d48658c08374f39aba3651f80c9a1fa.webp) ![image.webp](/download/0100959787d5a7d4459da57daacbb9e5e842.webp) 需要说明的是,除了用逗号(,)来分别表示多个时间段,例如“8,9,12”表示 8 月、9 月 和 12 月。还可以用减号(-)来表示一段连续的时间周期(例如字段“日”的取值为“12-15”, 则表示每月的 12~15 日)。以及用除号(/)表示执行任务的间隔时间(例如“/2”表示每隔 2 分钟执行一次任务)。 如果在 crond 服务中需要同时包含多条计划任务的命令语句,应每行仅写一条。例如我们再添加一条计划任务,它的功能是每周一至周五的凌晨 1 点钟自动清空/tmp目录内的所有文件。尤其需要注意的是,在 crond 服务的计划任务参数中,所有命令一定要用绝对路径的方式来写,如果不知道绝对路径,请用 whereis 命令进行查询,rm 命令路径为下面输出信息中加粗部分。 [root@kingdee ~]# whereis rm rm: **/usr/bin/rm** /usr/share/man/man1/rm.1.gz /usr/share/man/man1p/rm.1p.gz [root@kingdee ~]# crontab -e crontab: installing new crontab [root@kingdee ~]# crontab -l 25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot 0 1 * * 1-5 /usr/bin/rm -rf /tmp/* ![image.webp](/download/0100fd85c01bf33e46c68155ae573b43ac03.webp) ![image.webp](/download/01008757b75a71e24942af439fca86b8ae73.webp) # 常见问题举例:linux环境,如何实现oracle每天自动expdp备份? 步骤1:根据实际情况,选择备份脚本存放路径,比如/u01/expdpscript目录,并 vi expdp.sh, 增加下面内容: ``` #!/bin/bash PATH=$PATH:$HOME/bin ORACLE_BASE=/oracle/app/db ---请根据实际情况更改路径 ORACLE_HOME=/oracle/app/product/12.2.0/db_1 --请根据实际情况更改路径 ORACLE_SID=orcl --请根据实际情况更改实例名 PATH=$ORACLE_HOME/bin:$PATH export ORACLE_BASE ORACLE_HOME ORACLE_SID export PATH NLS_LANG=AMERICAN_AMERICA.UTF8 export NLS_LANG export BACKUPTIME=expdp_`date +%Y%m%d%H%M` echo "Starting backup..." echo "Backup file path $DATA_DIR/$BAKUPTIME.dmp" expdp testuser/testuser directory=EXP dumpfile=$BACKUPTIME%U logfile=$BACKUPTIME.log schemas=testuser exclude=table:\"like \'VT%\'\",statistics parallel=5 echo "Delete 15 days before data files..." find /data/backup/ -mtime +15 -name "expdp*.dmp" -exec rm -rf {} ; --请根据实际情况更改备份文件存放路径 find /data/backup/ -mtime +15 -name "expdp*.log" -exec rm -rf {} ; --请根据实际情况更改日志文件存放路径 ``` 步骤2:为目录和文件增加权限 ``` chown -R oracle:oinstall /u01/expdpscript chmod +x expdp.sh ``` ![image.webp](/download/0100cbdfa21462d94d9d95004d4a7b713747.webp) 步骤3:编辑计划任务 切换oracle用户,编辑计划任务crontab -e ![image.webp](/download/01005a9001c9b6b545c5adcbe6760886eb5d.webp) 设置每天的1点10分执行备份脚本,进行备份。 10 01 * * * /u01/expdpscript/expdp.sh > /u01/expdpscript/backup.log 2>&1 ![image.webp](/download/010092cef5e15bbb40379808568dd006d1bf.webp) 查看计划任务: ![image.webp](/download/01006ee4ced330204dfaabfe9ec9e3d111ef.webp)

计划任务服务程序

# 学习目标配置计划任务# 业务场景在指定的时间段自动启用或停止某些服务或命令,从而实现运维的自动化。# 学习内容计划任务分为一次性...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息