科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Solaris下任务的定时执行

Solaris下任务的定时执行

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Solaris下任务的定时执行

作者:chinaunix 来源:blog.chinaunix.net 2007年9月5日

关键字: 命令 脚本 Sun Solaris

  • 评论
  • 分享微博
  • 分享邮件

  今天一个客户问我如下问题:

  这边的MMSC需要增加一个计划任务:定时运行脚本。请你帮忙告知一下,情况如下:

  每天凌晨1点1分执行,首先su - mmsc,然后 sqlplus mmsc/mmsc@ora92登陆进sqlplus介面, 然后在sqlplus状态下执行/opt/mmsc/11oracle.sql这个脚本。

  这个在crotab -e里面怎么写?

  在问了客户是用root用户调用该任务之后,觉得有点纳闷,为什么不直接用“mmsc”用户执行呢,这样就不必从root用户切换到该用户了。

  但不管如何,以上的问题还是可以通过如下方式实现(未经验证):

  step1.新建一个脚本,将用户提及的主要的任务放进该脚本中。

  # more /opt/sun/script.sh

  su -c mmsc "sqlplus mmsc/mmsc@ora92 @/opt/mmsc/11oracle.sql"

  # chmod +x /opt/sun/script.sh

  step2.定义root用户的crontab脚本。

  root # crontab -e

  加入:

  1 1 * * * /opt/sun/script.sh

  [附:crontab命令用法]

  crontab命令

  /usr/sbin/cron命令在系统启动时自动执行,它启动cron daemon,从/var/spool/cron/crontabs目录下读取任务调度文件,系统将各个用户的任务调度文件放置在/var/spool/crontabs/usernames目录下,仅有超级用户有权查看别人的crontab文件。

  cron依靠两个文件:/etc/cron.d/cron.allow或/etc/cron.d/cron.deny来决定谁有权执行任务调度,缺省cron.allow文件不存在,当cron.allow存在时,则cron.deny不会被使用,如果两个文件都不存在,则只有root用户才能运行cron。

  读取cron文件内容:

  crontab –l(查看当前登录用户的调度文件)

  crontab –l username(查看指定用户的调度文件)

  编辑cron文件内容:

  $EDITOR=vi

  $export EDITOR(将VI设成缺省的文件编辑器)

  $crontab –e(编辑当前用户的cron文件) 或 crontab –e username(编辑指定用户的cron文件)

  删除crontab文件

  contab -r

  crontab文件格式

  分 小时(0-23) 日 月 星期 命令 (每个域之间用空格分开,每个域中允许有多个值,各值之间用逗号分开,每个域可以用*来匹配所有的值) 如:

  30 12 * * * echo “time to go for lunch”(在每天中午12:30显示信息,输出的信息存于用户的邮箱中)

  30 12 * * * echo “time to go for lunch” >/dev/pts/4 (假如当前终端为/dev/pts/4[可以用tty得知],则输出的信息在当前用户终端的屏幕上显示)

  0 0 3,15,20 * 3 command(在每个月的第3,5,20天执行任务,假如该天为星期三)

  0 16 * * 5 my_job (在每个星期五的下午4点执行作业my_job)

  crontab内容存放在/var/spool/cron/crontabs/username文件中。

  发表于: 2006-09-07 ,修改于: 2006-09-08 16:52,已浏览1643次,有评论0条推荐投诉

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章