小弟跪求解答,
hp 的unix,在crontab 头运行的脚本,,明明写了,压缩,但就是没压缩。。。。不晓得什么原因。
路径也用的绝对路径。。
下面,是一个我写的脚本,,实现功能是 ,压缩文件后,自动移走到当天的目录。
#/bin/ksh
TZ=CST+16
export TZ
ToDay=`date +%Y%m%d`
today=`date +%y%m%d`
month=`date +%Y%m`
TZ=CST-8
export TZ
mkdir -p /raw1/gsm_eric/rawcdr_bak/MSC_1/$month/$ToDay/
mkdir -p /raw1/gsm_eric/rawcdr_bak/MSC_2/$month/$ToDay/
mkdir -p /raw1/gsm_eric/rawcdr_bak/MSC_3/$month/$ToDay/
mkdir -p /raw1/gsm_eric/rawcdr_bak/MSC_4/$month/$ToDay/
mkdir -p /raw1/gsm_eric/rawcdr_bak/MSC_5/$month/$ToDay/
mkdir -p /raw1/gsm_eric/rawcdr_bak/MSC_6/$month/$ToDay/
mkdir -p /raw1/gsm_eric/rawcdr_bak/MSC_7/$month/$ToDay/
mkdir -p /raw1/gsm_eric/rawcdr_bak/MSC_8/$month/$ToDay/
mkdir -p /raw1/gsm_eric/rawcdr_bak/MSC_9/$month/$ToDay/
mkdir -p /raw1/gsm_hw_gtg/rawcdr_bak/MSC_1/$month/$ToDay/
mkdir -p /raw1/gsm_hw_gtg/rawcdr_bak/MSC_2/$month/$ToDay/
mkdir -p /raw1/gsm_hw_gtg/rawcdr_bak/MSC_3/$month/$ToDay/
mkdir -p /raw1/gsm_hw_gtg/rawcdr_bak/MSC_4/$month/$ToDay/
mkdir -p /raw1/gsm_eric_Tju/rawcdr_bak/MSC_1/$month/$ToDay/
mkdir -p /raw1/gsm_zte/rawcdr_bak/MSC_1/$month/$ToDay/
mkdir -p /raw1/gsm_cro/rawcdr_bak/$month/$ToDay/
mkdir -p /raw1/gsm_cbo/rawcdr_bak/$month/$ToDay/
mkdir -p /raw1/gsm_cio/rawcdr_bak/$month/$ToDay/
mkdir -p /raw1/gsm_zte_2g/rawcdr_bak/MSC_1/$month/$ToDay/
mkdir -p /raw2/gprs_egcdr_3g/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/gprs_scdr_3g/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/gprs_egcdr_3g_hw/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/hwsms/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/intersms/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/telsms/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/ptpsms/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/ltzxsms/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/gprsmms/rawcdr_bak/$month/$ToDay/
mkdir -p /raw1/vpn/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/vac/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/gw_cc08/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/gw_204_221_230/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/gw_basecall_pre/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/gw_basecall_af/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/gw_400_800/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/gw_lan/rawcdr_bak/$month/$ToDay/
mkdir -p /raw2/voip/rawcdr_bak/$month/$ToDay/
mkdir -p /bill2/xuanling/rawcdr_bak/$month/$ToDay/
mkdir -p /bill2/zengzhi/rawcdr_bak/$month/$ToDay/
mkdir -p /bill2/zengzhi17/rawcdr_bak/$month/$ToDay/
mkdir -p /bill2/sp/rawcdr_bak/$month/$ToDay/
bak_path1="/raw1/gsm_eric/rawcdr_bak/MSC_1/$month/$ToDay/"
bak_path2="/raw1/gsm_eric/rawcdr_bak/MSC_2/$month/$ToDay/"
bak_path3="/raw1/gsm_eric/rawcdr_bak/MSC_3/$month/$ToDay/"
bak_path4="/raw1/gsm_eric/rawcdr_bak/MSC_4/$month/$ToDay/"
bak_path5="/raw1/gsm_eric/rawcdr_bak/MSC_5/$month/$ToDay/"
bak_path6="/raw1/gsm_eric/rawcdr_bak/MSC_6/$month/$ToDay/"
bak_path7="/raw1/gsm_eric/rawcdr_bak/MSC_7/$month/$ToDay/"
bak_path8="/raw1/gsm_eric/rawcdr_bak/MSC_8/$month/$ToDay/"
bak_path9="/raw1/gsm_eric/rawcdr_bak/MSC_9/$month/$ToDay/"
bak_path10="/raw1/gsm_hw_gtg/rawcdr_bak/MSC_1/$month/$ToDay/"
bak_path11="/raw1/gsm_hw_gtg/rawcdr_bak/MSC_2/$month/$ToDay/"
bak_path12="/raw1/gsm_hw_gtg/rawcdr_bak/MSC_3/$month/$ToDay/"
bak_path13="/raw1/gsm_hw_gtg/rawcdr_bak/MSC_4/$month/$ToDay/"
bak_path14="/raw1/gsm_eric_Tju/rawcdr_bak/MSC_1/$month/$ToDay/"
bak_path15="/raw1/gsm_zte/rawcdr_bak/MSC_1/$month/$ToDay/"
bak_path16="/raw1/gsm_cro/rawcdr_bak/$month/$ToDay/"
bak_path17="/raw1/gsm_cbo/rawcdr_bak/$month/$ToDay/"
bak_path18="/raw1/gsm_cio/rawcdr_bak/$month/$ToDay/"
bak_path19="/raw1/gsm_zte_2g/rawcdr_bak/MSC_1/$month/$ToDay/"
bak_path20="/raw2/gprs_egcdr_3g/rawcdr_bak/$month/$ToDay/"
bak_path21="/raw2/gprs_scdr_3g/rawcdr_bak/$month/$ToDay/"
bak_path22="/raw2/gprs_egcdr_3g_hw/rawcdr_bak/$month/$ToDay/"
bak_path23="/raw2/hwsms/rawcdr_bak/$month/$ToDay/"
bak_path24="/raw2/intersms/rawcdr_bak/$month/$ToDay/"
bak_path25="/raw2/telsms/rawcdr_bak/$month/$ToDay/"
bak_path26="/raw2/ptpsms/rawcdr_bak/$month/$ToDay/"
bak_path27="/raw2/ltzxsms/rawcdr_bak/$month/$ToDay/"
bak_path28="/raw2/gprsmms/rawcdr_bak/$month/$ToDay/"
bak_path29="/raw1/vpn/rawcdr_bak/$month/$ToDay/"
bak_path30="/raw2/vac/rawcdr_bak/$month/$ToDay/"
bak_path31="/raw2/gw_cc08/rawcdr_bak/$month/$ToDay/"
bak_path32="/raw2/gw_204_221_230/rawcdr_bak/$month/$ToDay/"
bak_path33="/raw2/gw_basecall_pre/rawcdr_bak/$month/$ToDay/"
bak_path34="/raw2/gw_basecall_af/rawcdr_bak/$month/$ToDay/"
bak_path35="/raw2/gw_400_800/rawcdr_bak/$month/$ToDay/"
bak_path36="/raw2/gw_lan/rawcdr_bak/$month/$ToDay/"
bak_path37="/raw2/voip/rawcdr_bak/$month/$ToDay/"
bak_path38="/bill2/xuanling/rawcdr_bak/$month/$ToDay/"
bak_path39="/bill2/zengzhi/rawcdr_bak/$month/$ToDay/"
bak_path40="/bill2/zengzhi17/rawcdr_bak/$month/$ToDay/"
bak_path41="/bill2/sp/rawcdr_bak/$month/$ToDay/"
#if ps -ef|grep $bak_path1 |grep -v grep |grep -v vi|grep -v more |grep -v tail
#then
#echo "moving file" > /raw1/log/caijibak.log
#else
echo "start module: move bak_file" >> /raw1/log/caijibak.log
cd /raw1/gsm_eric/rawcdr_bak/MSC_1/
gzip /raw1/gsm_eric/rawcdr_bak/MSC_1/*
file=`ls $today*`
for i in $file
do
mv $i $bak_path1 >/dev/null
done
#fi
#if ps -ef|grep $bak_path2 |grep -v grep |grep -v vi|grep -v more |grep -v tail
#then
#echo "moving file" > /raw1/log/caijibak.log
#else
echo "start module: move bak_file" >> /raw1/log/caijibak.log
cd /raw1/gsm_eric/rawcdr_bak/MSC_2/
gzip /raw1/gsm_eric/rawcdr_bak/MSC_2/*
file=`ls $today*`
for i in $file
do
mv $i $bak_path2 >/dev/null
done
#fi
#if ps -ef|grep $bak_path3 |grep -v grep |grep -v vi|grep -v more |grep -v tail
#then
#echo "moving file" > /raw1/log/caijibak.log
#else
echo "start module: move bak_file" >> /raw1/log/caijibak.log
cd /raw1/gsm_eric/rawcdr_bak/MSC_3/
gzip /raw1/gsm_eric/rawcdr_bak/MSC_3/*
file=`ls $today*`
for i in $file
do
mv $i $bak_path3 >/dev/null
done
#fi
#if ps -ef|grep $bak_path4 |grep -v grep |grep -v vi|grep -v more |grep -v tail
#then
#echo "moving file" > /raw1/log/caijibak.log
#else
echo "start module: move bak_file" >> /raw1/log/caijibak.log
cd /raw1/gsm_eric/rawcdr_bak/MSC_4/
gzip /raw1/gsm_eric/rawcdr_bak/MSC_4/*
file=`ls $today*`
for i in $file
do
mv $i $bak_path4 >/dev/null
done
#fi
16 个解决方案
#1
你的内容太长,我没有仔细看,请原谅。你使用命令
run-parts /dir/to/your/script/
来查看一下你脚本所在的目录中合法的任务中是否有你的脚本存在,run-parts是检查合法性的。
如果没有,那么可能是你的脚本以.sh结尾,请删除.sh,或者是没有执行权限,请修改权限。
run-parts /dir/to/your/script/
来查看一下你脚本所在的目录中合法的任务中是否有你的脚本存在,run-parts是检查合法性的。
如果没有,那么可能是你的脚本以.sh结尾,请删除.sh,或者是没有执行权限,请修改权限。
#2
billapp@ynbillapp/bill1/yangli$run-parts caiji_bak_test2.sh
ksh: run-parts: not found
billapp@ynbillapp/bill1/yangli$run-parts caiji_bak_test1.sh
ksh: run-parts: not found
这样吗?
not found
caiji_bak_test.sh 这个是我要执行的 脚本,权限是 777
crontab 里面是
30 0 * * * /bill1/yangli/caiji_bak_test.sh
ksh: run-parts: not found
billapp@ynbillapp/bill1/yangli$run-parts caiji_bak_test1.sh
ksh: run-parts: not found
这样吗?
not found
caiji_bak_test.sh 这个是我要执行的 脚本,权限是 777
crontab 里面是
30 0 * * * /bill1/yangli/caiji_bak_test.sh
#3
这个脚本,里面的 移走文件的功能都实现了,,就是不gzip。。
#4
我怀疑是不是脚本执行的时候没有找到gzip这个命令
你看你的gzip在哪儿 然后用绝对路径
建立你在写脚本的时候在开始的时候把命令的全路径都写上
比如
gzip=/bin/gzip
mv=/bin/mv
这样
然后后面再用gzip mv
你看你的gzip在哪儿 然后用绝对路径
建立你在写脚本的时候在开始的时候把命令的全路径都写上
比如
gzip=/bin/gzip
mv=/bin/mv
这样
然后后面再用gzip mv
#5
up
#6
在 /bin/ 下果然没找到 gzip 。。。
billapp@ynbillapp/bin$ls gzip
gzip not found
billapp@ynbillapp/bin$ls mv
mv
现在要找 gzip 在什么地方,,应该怎么找。。
billapp@ynbillapp/bin$ls gzip
gzip not found
billapp@ynbillapp/bin$ls mv
mv
现在要找 gzip 在什么地方,,应该怎么找。。
#7
whereis gzip
或者用find命令
或者用find命令
#8
billapp@ynbillapp/bill1$whereis gzip
gzip: /usr/contrib/bin/gzip /usr/contrib/man/man1.Z/gzip.1
billapp@ynbillapp/bill1$whereis mv
mv: /sbin/mv /usr/bin/mv /usr/share/man/man1.Z/mv.1
但是
billapp@ynbillapp/bin$ls mv
mv
这个 mv 不是 在/bin/mv 下吗? 为什么 whereis mv 出现
billapp@ynbillapp/bill1$whereis mv
mv: /sbin/mv /usr/bin/mv /usr/share/man/man1.Z/mv.1
象
billapp@ynbillapp/bill1$whereis gzip
gzip: /usr/contrib/bin/gzip /usr/contrib/man/man1.Z/gzip.1
绝对路径 gzip= 该怎么写
gzip: /usr/contrib/bin/gzip /usr/contrib/man/man1.Z/gzip.1
billapp@ynbillapp/bill1$whereis mv
mv: /sbin/mv /usr/bin/mv /usr/share/man/man1.Z/mv.1
但是
billapp@ynbillapp/bin$ls mv
mv
这个 mv 不是 在/bin/mv 下吗? 为什么 whereis mv 出现
billapp@ynbillapp/bill1$whereis mv
mv: /sbin/mv /usr/bin/mv /usr/share/man/man1.Z/mv.1
象
billapp@ynbillapp/bill1$whereis gzip
gzip: /usr/contrib/bin/gzip /usr/contrib/man/man1.Z/gzip.1
绝对路径 gzip= 该怎么写
#9
我也遇到过Crontab的问题:手动执行那个脚本没有问题,但是加到crontab之后就出问题了……
后来只好放弃crontab了。
后来只好放弃crontab了。
#10
在脚本头 加了
#/bin/ksh
gzip=/usr/contrib/bin/gzip
mv=/usr/bin/mv
还是不执行压缩。。
#/bin/ksh
gzip=/usr/contrib/bin/gzip
mv=/usr/bin/mv
还是不执行压缩。。
#11
你先用/usr/contrib/bin/gzip来压缩一个文件测试一下
#12
其实 /bin/mv 和 /usr/bin/mv 是同一个命令
你用diff /bin/mv /usr/bin/mv 就会发现
#13
有了
gzip=/usr/contrib/bin/gzip
mv=/usr/bin/mv
在后面用这2个命令的时候
要这样
$gzip
$mv
#14
你试试 熊猫哥地方法。
还有就是增加一下shell的调试信息
你试试在crontab 里面将shell 的调试信息是否可重定向到文件中。
这样子看一下 到底是哪里出了问题。好像在加入crontab的时候 有一些环境中的东西他是找不到的。以前也遇到过
还有就是增加一下shell的调试信息
你试试在crontab 里面将shell 的调试信息是否可重定向到文件中。
这样子看一下 到底是哪里出了问题。好像在加入crontab的时候 有一些环境中的东西他是找不到的。以前也遇到过
#15
crontab 运行 shell 与 手工运行最大的不同就
环境不同,
如果你的 shell 手工运行能工作, 那肯定就是环境问题了。
最常见的就是PATH问题。
你把你的命令的路径全带上,,
如果你的 shell 手工运行能工作, 那肯定就是环境问题了。
最常见的就是PATH问题。
你把你的命令的路径全带上,,
#16
问题好了。。
感谢大家
我把脚本里头所有的 gzip
变成/usr/contrib/bin/gzip
就好了。。
感谢大家
我把脚本里头所有的 gzip
变成/usr/contrib/bin/gzip
就好了。。
#1
你的内容太长,我没有仔细看,请原谅。你使用命令
run-parts /dir/to/your/script/
来查看一下你脚本所在的目录中合法的任务中是否有你的脚本存在,run-parts是检查合法性的。
如果没有,那么可能是你的脚本以.sh结尾,请删除.sh,或者是没有执行权限,请修改权限。
run-parts /dir/to/your/script/
来查看一下你脚本所在的目录中合法的任务中是否有你的脚本存在,run-parts是检查合法性的。
如果没有,那么可能是你的脚本以.sh结尾,请删除.sh,或者是没有执行权限,请修改权限。
#2
billapp@ynbillapp/bill1/yangli$run-parts caiji_bak_test2.sh
ksh: run-parts: not found
billapp@ynbillapp/bill1/yangli$run-parts caiji_bak_test1.sh
ksh: run-parts: not found
这样吗?
not found
caiji_bak_test.sh 这个是我要执行的 脚本,权限是 777
crontab 里面是
30 0 * * * /bill1/yangli/caiji_bak_test.sh
ksh: run-parts: not found
billapp@ynbillapp/bill1/yangli$run-parts caiji_bak_test1.sh
ksh: run-parts: not found
这样吗?
not found
caiji_bak_test.sh 这个是我要执行的 脚本,权限是 777
crontab 里面是
30 0 * * * /bill1/yangli/caiji_bak_test.sh
#3
这个脚本,里面的 移走文件的功能都实现了,,就是不gzip。。
#4
我怀疑是不是脚本执行的时候没有找到gzip这个命令
你看你的gzip在哪儿 然后用绝对路径
建立你在写脚本的时候在开始的时候把命令的全路径都写上
比如
gzip=/bin/gzip
mv=/bin/mv
这样
然后后面再用gzip mv
你看你的gzip在哪儿 然后用绝对路径
建立你在写脚本的时候在开始的时候把命令的全路径都写上
比如
gzip=/bin/gzip
mv=/bin/mv
这样
然后后面再用gzip mv
#5
up
#6
在 /bin/ 下果然没找到 gzip 。。。
billapp@ynbillapp/bin$ls gzip
gzip not found
billapp@ynbillapp/bin$ls mv
mv
现在要找 gzip 在什么地方,,应该怎么找。。
billapp@ynbillapp/bin$ls gzip
gzip not found
billapp@ynbillapp/bin$ls mv
mv
现在要找 gzip 在什么地方,,应该怎么找。。
#7
whereis gzip
或者用find命令
或者用find命令
#8
billapp@ynbillapp/bill1$whereis gzip
gzip: /usr/contrib/bin/gzip /usr/contrib/man/man1.Z/gzip.1
billapp@ynbillapp/bill1$whereis mv
mv: /sbin/mv /usr/bin/mv /usr/share/man/man1.Z/mv.1
但是
billapp@ynbillapp/bin$ls mv
mv
这个 mv 不是 在/bin/mv 下吗? 为什么 whereis mv 出现
billapp@ynbillapp/bill1$whereis mv
mv: /sbin/mv /usr/bin/mv /usr/share/man/man1.Z/mv.1
象
billapp@ynbillapp/bill1$whereis gzip
gzip: /usr/contrib/bin/gzip /usr/contrib/man/man1.Z/gzip.1
绝对路径 gzip= 该怎么写
gzip: /usr/contrib/bin/gzip /usr/contrib/man/man1.Z/gzip.1
billapp@ynbillapp/bill1$whereis mv
mv: /sbin/mv /usr/bin/mv /usr/share/man/man1.Z/mv.1
但是
billapp@ynbillapp/bin$ls mv
mv
这个 mv 不是 在/bin/mv 下吗? 为什么 whereis mv 出现
billapp@ynbillapp/bill1$whereis mv
mv: /sbin/mv /usr/bin/mv /usr/share/man/man1.Z/mv.1
象
billapp@ynbillapp/bill1$whereis gzip
gzip: /usr/contrib/bin/gzip /usr/contrib/man/man1.Z/gzip.1
绝对路径 gzip= 该怎么写
#9
我也遇到过Crontab的问题:手动执行那个脚本没有问题,但是加到crontab之后就出问题了……
后来只好放弃crontab了。
后来只好放弃crontab了。
#10
在脚本头 加了
#/bin/ksh
gzip=/usr/contrib/bin/gzip
mv=/usr/bin/mv
还是不执行压缩。。
#/bin/ksh
gzip=/usr/contrib/bin/gzip
mv=/usr/bin/mv
还是不执行压缩。。
#11
你先用/usr/contrib/bin/gzip来压缩一个文件测试一下
#12
其实 /bin/mv 和 /usr/bin/mv 是同一个命令
你用diff /bin/mv /usr/bin/mv 就会发现
#13
有了
gzip=/usr/contrib/bin/gzip
mv=/usr/bin/mv
在后面用这2个命令的时候
要这样
$gzip
$mv
#14
你试试 熊猫哥地方法。
还有就是增加一下shell的调试信息
你试试在crontab 里面将shell 的调试信息是否可重定向到文件中。
这样子看一下 到底是哪里出了问题。好像在加入crontab的时候 有一些环境中的东西他是找不到的。以前也遇到过
还有就是增加一下shell的调试信息
你试试在crontab 里面将shell 的调试信息是否可重定向到文件中。
这样子看一下 到底是哪里出了问题。好像在加入crontab的时候 有一些环境中的东西他是找不到的。以前也遇到过
#15
crontab 运行 shell 与 手工运行最大的不同就
环境不同,
如果你的 shell 手工运行能工作, 那肯定就是环境问题了。
最常见的就是PATH问题。
你把你的命令的路径全带上,,
如果你的 shell 手工运行能工作, 那肯定就是环境问题了。
最常见的就是PATH问题。
你把你的命令的路径全带上,,
#16
问题好了。。
感谢大家
我把脚本里头所有的 gzip
变成/usr/contrib/bin/gzip
就好了。。
感谢大家
我把脚本里头所有的 gzip
变成/usr/contrib/bin/gzip
就好了。。