Chinaunix

标题: 到时间后自动不能不能执行shell? [打印本页]

作者: johnson0418    时间: 2015-11-28 07:04
标题: 到时间后自动不能不能执行shell?
我试过,时间到了20151221执行引脚本,可以正常copy。
比如我把日期调到20151220,23:50分钟执行此脚本,但到了20151221的时间,怎么没有copy过去?我看了进程还在的。请指点一下,谢谢!


root> vi panduan-date2

#!/bin/bash
dt=20151221
DATE=$(date +%Y%m%d)
while [ 1 ]
do
if [ $dt -le $DATE ]
then
    cp /tmp/aa /tmp/aa.bck
else
    echo "erro"
sleep 60
fi
done
~



root> ps -edf |grep sleep
root     23567 23258  0 00:11 pts/0    00:00:00 sleep 60
root     23575 12724  0 00:12 pts/0    00:00:00 grep sleep

作者: waker    时间: 2015-11-28 08:52
#!/bin/bash
dt=20151221

while [ 1 ]
do
DATE=$(date +%Y%m%d)
if [ $dt -le $DATE ]
then
    cp /tmp/aa /tmp/aa.bck
else
    echo "erro"
sleep 60
fi
done
作者: waker    时间: 2015-11-28 08:53
两个常量比较一万次就变变量了?
作者: johnson0418    时间: 2015-11-29 05:16
本帖最后由 johnson0418 于 2015-11-29 06:41 编辑

回复 2# waker

谢谢老师的回复!

这个进程一直有,我看CPU使用率都上去了,没有什么空余的了,是不是有新的进程就不能运行了?会对CPU造成很大影响吗?或还有其他方法可以做循环同时不占用CPU使用率的吗(我的想法是自己的脚本跟系统一起运行,到指定的时间以后,即执行脚本里的内容)?

希望老师指点。

作者: waker    时间: 2015-11-29 07:57
回复 4# johnson0418

搜索一下 cron crontab
   
作者: johnson0418    时间: 2015-11-29 13:35
回复 5# waker


   
我会用crontab,这里所做的大家都可以看到。我想用shell来完成我所想要达到的,不知道之前问的问题是否可以?
作者: seanking1987    时间: 2015-11-30 09:35
回复 4# johnson0418

  1. #!/bin/bash
  2. dt=20151221

  3. while [ 1 ]
  4. do
  5. DATE=$(date +%Y%m%d)
  6. if [ $dt -le $DATE ]
  7. then
  8.     cp /tmp/aa /tmp/aa.bck
  9. else
  10.     echo "erro"
  11. fi
  12. sleep 60
  13. done
复制代码
因为if为真满足条件,一直在while(1)且没有sleep(sleep在else流程,这个和C语言不一样),CPU当然会100%。
   
作者: johnson0418    时间: 2015-11-30 20:34
回复 7# seanking1987


   
那我要怎么改?
作者: seanking1987    时间: 2015-12-01 08:55
回复 8# johnson0418

我在六楼已经贴出来了?

   
作者: johnson0418    时间: 2015-12-01 13:08
回复 9# seanking1987


没仔细看,谢谢,我试试看。

   
作者: johnson0418    时间: 2015-12-09 00:51
回复 7# seanking1987


    seanking1987,除了用sleep方式,还有没有其他的方式,每隔4个小时循环一次?

作者: seanking1987    时间: 2015-12-09 09:02
回复 11# johnson0418

那又回到前面说的问题了。
crontab................


   
作者: johnson0418    时间: 2015-12-09 09:31
回复 12# seanking1987


    如果用sleep来做的话,进程里有sleep信息。我不知道别人是怎么做的,他可以做到每4小时check文件的权限并修改里面的内容,进程查不到什么,因为进程里的shell都是二进制 的,看不到,所以不知道是怎么实现的。crontab也没有的。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2