在linux环境下,发现crontab 中执行lftp不成功。在lftp命令中,加-d命令,查看调试信息:
Message 1169:
From dzqb@localhost.localdomain
Thu Mar 10 19:54:24 2016
Date: Thu, 10 Mar 2016 19:54:01 +0800
From: root@localhost.localdomain
(Cron Daemon)
To: dzqb@localhost.localdomain
Subject: Cron <
se-mark="1">dzqb@localhost
> $HOME/ftpshell/sftp_put_mchpos_data.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
---- Running connect program (ssh -a -x -s -l ecqz 127.0.0.1 sftp)
---> sending a packet, length=5, type=1(INIT), id=0
**** Peer closed connection
---- Disconnecting
/home/dzqb/ftpshell/msftp_put: line 39: 16538 Killed lftp -d -u $USER,$PASS sftp://$REMOTE_IP <
echo "1"
lcd $LOCAL_DIR
echo "2"
cd $REMOTE_DIR
echo "3"
put $LOCAL_FILE
echo "4"
mv $LOCAL_FILE $REMOTE_FILE
echo "5"
bye
echo "6"
END_SFTP
&
At EOF
&
At EOF
& q
Saved 1 message in mbox
Held 1168 messages in /var/spool/mail/dzqb
从上面观察,原因是crontab中的sh没有找到ssh命令。
我们在crontab执行的脚本中,增加ssh命令的路径:
PATH=$PATH:/usr/local/bin
然后再在crontab中执行。OK。
Jesus loves you!