免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4379 | 回复: 1
打印 上一主题 下一主题

[文本处理] ftp脚本手动执行没问题,crontab调用有误。奇葩!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-28 16:52 |显示全部楼层 |倒序浏览
操作系统: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

论坛徽章:
0
2 [报告]
发表于 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  的帮助

然后头跟我说以后写脚本也尽量用绝对路径 ,这次算是体会到了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP