• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

crontab

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 21次 | 进入软件测试论坛讨论

领测软件测试网
我写了一个脚本,配置过crontab后,死活不执行,从cronab -l里粘到命令行上回车运行正常。
配置为
10 6 * * * /home/username/clean/clean.sh
/home/username/clean/clean.sh中的内容为:
##detail
cd ~username/bak/
find . -name 'detail*' -mtime +10 -type f -exec gzip {} \;
mv *.gz /data/detail

该crontab文件里的其他配置都可以执行。
什么原因?

 Janson-Chen 回复于:2004-02-25 11:15:02
你先把你得shell,修改成一个echo,看看能不能正常显示?

 hpux 回复于:2004-02-25 11:15:32
你确认没执行么?在clean.sh里加一句:
echo "Run OK" >/run.result
然后看看run.result有没有。
问题可能出在“cd ~username/bak/”。

 xanadus 回复于:2004-02-25 12:36:58
:lol: i think u can do like this:
10 6 * * * sh /home/username/clean/clean.sh 

and u can check ur UserID's mail

 freekiss 回复于:2004-02-25 14:38:54
[quote:422be6f806="xanadus"]:lol: i think u can do like this:
10 6 * * * sh /home/username/clean/clean.sh 

and u can check ur UserID's mail[/quote:422be6f806]

同意,关于cron不能执行成功的原因在该用户的mail里面有说明的。

 rosaney 回复于:2004-02-25 15:06:07
唐贤勇,你说错了

 welcome008 回复于:2004-02-25 17:56:06
sorry,检查了一下,crontab是执行了,但是find语句没有找到要找的文件。也就没有进行压缩。但是直接执行该find语句就可以找到要压缩的文件进行压缩。怪了。

 hpux 回复于:2004-02-25 18:14:05
再重申一遍:
问题可能出在 “cd ~username/bak/”。

 朽木可雕 回复于:2004-02-26 09:34:53
[quote:6083fa0f28="hpux"]再重申一遍:
问题可能出在 “cd ~username/bak/”。[/quote:6083fa0f28]
我觉得也是

 rat326 回复于:2004-02-26 12:10:30
请将“~username/bak/”改成绝对路径试试。

 沉寂 回复于:2004-02-26 16:30:28
crontab里面支持的环境变量很少的,~username是肯定不支持的,必须要用绝对路径。

 Janson-Chen 回复于:2004-02-26 17:15:07
环境变量的解析,跟你这个运行脚本的shell有关。
#/sbin/ksh
加在第一行。

 welcome008 回复于:2004-02-27 16:03:23
/sbin下没有ksh

 hpux 回复于:2004-02-27 16:07:57
[quote:8608d9956c="Janson-Chen"]环境变量的解析,跟你这个运行脚本的shell有关。
#/sbin/ksh
加在第一行。[/quote:8608d9956c]
1、默认就是/usr/bin/sh,ksh基本一样;
2、ksh位置在/usr/bin/ksh;
3、即使要加,第一行也是:
#!/usr/bin/ksh

个人意见,关键还是变量替换上出问题了。

 welcome008 回复于:2004-02-27 16:18:09
不是变量替换,我已经改成绝对路径了。好像是find的问题
现在的内容是
#!/usr/bin/ksh
##detail
echo "run start" > result.txt
cd /home/username/bak/163
echo "run start1" > result.txt
find . -name 'detail*' -mtime +8 -type f -exec gzip {} \;
echo "run start2" >> result.txt
mv *.gz /data2/detailbak/163
echo "run continue" >> result.txt
结果在当前目录下生成result.txt内容是run start
在/home/username/bak/163下生成result.txt内容是
run start1
run start2
run continue
但是没有压缩,不过我把find这行单独执行是可以找到文件并进行压缩的。

 hpux 回复于:2004-02-27 20:02:37
OK,这样应该可以了:
find /home/username/bak/163 -name 'detail*' -mtime 8 -type f -exec gzip {}\;

 welcome008 回复于:2004-02-28 14:02:40
仍是不行。
问题就是在find这一句上。

 welcome008 回复于:2004-03-01 10:56:10
在顶一下

 welcome008 回复于:2004-03-01 17:50:51
没有人可以帮忙解决么?

 welcome008 回复于:2004-03-02 12:11:12
各位老大,在自己的机器上做个测试,看能不能帮忙解决呀。搞了快两周了,仍然没有解决!垂头丧气!

 hpux 回复于:2004-03-02 12:59:30
你把find的条件说明一下,我试试。

 welcome008 回复于:2004-03-02 17:38:16
find dir -name 'detail*' -mtype +10 gzip {} \;

 welcome008 回复于:2004-03-02 17:38:37
find dir -name 'detail*' -mtype +10 -type f gzip {} \;

 welcome008 回复于:2004-03-02 22:10:29
这一会人挺多的。大家帮忙呀,为何
find dir -name 'detail*' -mtype +10 -type f gzip {} \;
这一句在crontab里执行不成功,也不报错。
但是直接运行就能找到相应的文件并压缩?

大家在自己的机器上试一下。给个答案吧。或者给个解决办法也行。就是要找到某个目录下的n天没有修改的文件并压缩。如和做?

 pcbird 回复于:2004-03-02 23:54:31
是不是用户权限问题呀?
试试将
10 6 * * * /home/username/clean/clean.sh 
改成
10 6 * * * su -#### -c "/home/username/clean/clean.sh"

 :em11:

 pcbird 回复于:2004-03-03 00:08:13
[color=red:3ac9cf65cf]看看下面的文章,也许你就明白了:[/color:3ac9cf65cf]
[size=24:3ac9cf65cf][url]http://bbs.caoyuan.net/viewtopic.php?t=112[/url][/size:3ac9cf65cf]

 welcome008 回复于:2004-03-03 09:59:42
1,用户权限没问题:
因为run_result已经生成,而且它的用户和组是和'det*'一样的。而且直接运行改脚本就可以执行。
2,我看了http://bbs.caoyuan.net/viewtopic.php?t=112这个页面,但仍然解决不了问题。
我的问题不是crontab的用法问题,而是find在crontab里执行不成功。
仍然谢谢两位热心帮忙。
仍然希望大家在自己的机器上试一下。

 blueaut 回复于:2004-08-10 17:36:20
把find的完整路径写上试试

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网