Chinaunix

标题: ftp脚本手动执行没问题,crontab调用有误。奇葩!! [打印本页]

作者: xiehuang911    时间: 2012-11-28 16:52
标题: ftp脚本手动执行没问题,crontab调用有误。奇葩!!
操作系统:rh6.2
本地IP :10.10.32.37
FTP服务器IP :10.10.32.35   默认根目录为/var/ftp
背景:本地有一个处理完的日志文件kestrel_**,路径为/log/10.10.32.37/20121128/kestrel_**,我需要将这个文件通过FTP无交互的发送到ftp服务器(10.10.32.35)下的log/10.10.32.37/20121128下    其中有一些判断文件夹是否存在之类的语句    服务器端给匿名用户的权限设置也没问题

问题 我手动执行这个脚本,会将日志文件传送到服务器的/var/log/10.10.32.37/20121128/下。 但是我将日志文件放在crontab 里面每2分钟执行一次后,日志文件将会被传送到/var/log/20121128/下,也就是并没有切换路径到10.10.32.37

以下附上相关脚本/root/scripts/ftp_monitor_kestrel.sh
#!/bin/bash

IP=$(ifconfig | head -2 | tail -1 | awk '{print $2}' | tr -d 'addr:')
date1=$(date +%Y%m%d)
date2=$(date +%H%M)

log_path=/log/$IP/$date1
mkdir $log_path -p  &> /dev/null
cd $log_path

ftp -n -v << EOF
open 10.10.32.35
user ftp \n
cd log/$IP/
mkdir $date1
cd $date1
put kestrel_$date2
bye
EOF

crontab -e 内的语句  */2 * * * *   /root/scripts/ftp_monitor_kestrel.sh
作者: waker    时间: 2012-11-28 17:01
请确认不同情况下脚本环境中的PATH变量一致
作者: waker    时间: 2012-11-28 17:01
或者看看新手导航
作者: todayhero    时间: 2012-11-28 17:05
*/2 * * * *   /root/scripts/ftp_monitor_kestrel.sh > /var/log/ftp_monitor_kestrel.log 2>&1&


/var/log/ftp_monitor_kestrel.log看一下错误日志。
作者: xiehuang911    时间: 2012-11-28 18:04
。。问题解决了,是contab与本地环境变量差异的问题
  我将crontab -e 里的脚本输出到一个日志  查看日志发现报错
/root/scripts/ftp_monitor_kestrel.sh: line 10: ifconfig: command not found   
然后查看了ifconfig的命令实在/sbin下   
然后在脚本里面 在ifconfig前加上绝对路径  就解决了

也建议以后如果遇到类似问题可以将crontab的日志输出到一个文件查看,可能会有用
谢谢 @todayhero  的帮助

然后头跟我说以后写脚本也尽量用绝对路径 ,这次算是体会到了




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