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