免费注册 查看新帖 |

Chinaunix

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

[文本处理] 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

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2012-11-28 17:01 |只看该作者
请确认不同情况下脚本环境中的PATH变量一致

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2012-11-28 17:01 |只看该作者
或者看看新手导航

论坛徽章:
0
4 [报告]
发表于 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看一下错误日志。

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