【求助】redhat下crontab任务执行shell脚本
发布时间:2015-08-06 20:40:04来源:红联作者:wangkun711
shell脚本功能:将redhat系统某个目录下的昨天的日志文件通过ftp传输到另一台redhat主机。
使用crontab创建定时任务每天凌晨1点1分自动执行shell脚本。
求助:shell脚本手动执行可以成功将文件传输到另一台redhat主机,定时任务执行传输时文件并没有传输过去,从日志看shell脚本有执行,无报错。
crontab执行的报错信息为:local: alay.log1.2015-08-05: No such file or directory
shell脚本名ftpfile.sh,内容如下:
#!/bin/bash
shlogpath=/usr/tomcat/alaydata/logs/ftplog
localpath=/usr/tomcat/alaydata/logs
targetpath=./src/old/data/alaylog
LogFile=${shlogpath}/ftp.log.`date +"%Y-%m-%d"`
hostip=192.168.3.4
ftpuser=imcd
ftpasswd=imcd132%%
fileName=alay.log1.`date -d "1 day ago" +"%Y-%m-%d"`
echo -e "\n\n\n">$LogFile
echo "-------------------------------------------------------------------" >>$LogFile
echo `date +"%Y-%m-%d %H:%M:%S"` >>$LogFile
echo -e "\n">>$LogFile
echo -e "任务执行情况:\n\n" >>$LogFile
echo -e "检查"alay.log1.`date -d "1 day ago" +"%Y-%m-%d"`"文件是否存在:\n">>$LogFile
#判断文件是否存在
if [ -e $localpath/$fileName ] ; then
echo -e "文件"alay.log1.`date -d "1 day ago" +"%Y-%m-%d"`"文件"存在!"\n">>$LogFile
echo "准备上传"alay.log1.`date -d "1 day ago" +"%Y-%m-%d"`"文件...." >>$LogFile
echo "copy job starting......">>$LogFile
echo "........执行上传........" >>$LogFile
ftp -in $hostip << EOF
user $ftpuser $ftpasswd
cd $targetpath
bin
mput $fileName
bye
EOF
echo "........上传完毕!........">>$LogFile
echo "文件["$fileName"]传输到"$hostip"目录"$targetpath"成功!">>$LogFile
echo -e "\n\n\n">>$LogFile
exit;
else
echo "目录"$localpath"下文件["$fileName"]不存在!">>$LogFile
echo -e "\n\n\n">>$LogFile
exit;
fi
vi /etc/crontab添加定时任务:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#MAILTO=root
HOME=/
1 1 * * * root /usr/tomcat/alaydata/logs/ftpfile.sh >>/root/alaydata/ftplog/crontab.log 2>&1