| 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的完整路径写上试试
|