免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5271 | 回复: 8
打印 上一主题 下一主题

请教shell定时的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-06 11:23 |只看该作者 |倒序浏览
目前正在写一个shell, 打算每日定期运行几次,
其中包含3个命令a,b 和c
请问如何让命令a 在当天第一次运行的时候执行
命令b在当天最后一次执行shell的时候执行
命令c在一周最后一天最后1次执行shell的时候执行呢??
谢谢各位先

[ 本帖最后由 nihlathaks 于 2007-12-6 11:25 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-12-06 11:45 |只看该作者
crontab??a在0点0分。b在23点59分,c在周7 23点59分

论坛徽章:
0
3 [报告]
发表于 2007-12-06 12:03 |只看该作者
楼上的意思是3个命令单独拿出来,
不放在一个shell里??

论坛徽章:
0
4 [报告]
发表于 2007-12-06 12:31 |只看该作者

回复 #1 nihlathaks 的帖子

crontab 比较好一点

如果你的意思是登录shell的话,那就写在.bash_login和.bash_logout中好了:)

论坛徽章:
0
5 [报告]
发表于 2007-12-06 12:36 |只看该作者
谢谢各位,
如果要建立一个日期格式的目录名是否是
mkdir ${date +%y%m%d} ?

论坛徽章:
0
6 [报告]
发表于 2007-12-06 12:43 |只看该作者

回复 #5 nihlathaks 的帖子

mkdir $(date +%y%m%d)

论坛徽章:
0
7 [报告]
发表于 2007-12-06 14:03 |只看该作者
用crontab比较好

论坛徽章:
0
8 [报告]
发表于 2007-12-06 15:53 |只看该作者
我也打算用crontab
再请教如果我要把date +%y%m%d 的值 赋给DATE
这个怎么写呢? 谢谢

论坛徽章:
0
9 [报告]
发表于 2007-12-06 16:21 |只看该作者

  1. #!/bin/bash

  2. runtime="0800,1200,1600,2200" #do some command at these time
  3. yesterday=
  4. i=0
  5. while [ 1 ]
  6. do
  7.   curtime=$(date +%H%M)
  8.   [ "X$runtime" == "X${runtime/$curtime}" ] && sleep 10 && continue  #do nothing
  9.   today=$(date +%Y%m%d)
  10.   [ "X$today" != "X$yesterday"] && i=0 && yesterday=$today
  11.   ((i++))
  12.   #do some command
  13.   [ $i -eq 1 ] && #do command a
  14.   #do some command
  15.   if [ ${runtime##*,} == $curtime ] ;then
  16.           #do command b
  17.           #do some command
  18.           [ $(date +%w) -eq 0 ] && #do command c at sunday (7=0)
  19.   fi
  20.   [ $(date +%H%M) == $curtime ] && sleep 60  #run once at a time
  21. done  
复制代码

然后运行这个脚本就可以了,不需要用cron
可以适当调整sleep 的时间,取决于脚本运行的时间

[ 本帖最后由 springwind426 于 2007-12-6 16:32 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP