Linux下 定时计划上传ftp文件

Linux下 定时计划上传ftp文件

注:Linux 原有一个很好的程序叫mirror 但是没有时间研究又赶着用这一功能,所以写了以下的bash脚本,仓促之作有很多不足之处,敬请指教。至于bash命令的详细说明请参考我前面的文章。

目标:每三分钟检查有没有文件更新(距上次修改时间有没有三分钟),如果有就上传,并且

删除原文件

在ftpconfig 目录下新建如下三个文件,并chmod a+x ****

excuteftpupload.sh tmpfile uploadfile.sh

test目录为上传文件所在的目录

ftptmpfile 目录为临时目录

***************************************************

[qqlaputa@test ftpconfig]$ cat uploadfile.sh

#!/bin/bash

# Author:shijian

# Date 02.11.2008

# Purpose:auto upload ftp files

DIR="/home/qqlaputa/test"

DIR2="/home/qqlaputa/ftpconfig"

DIR3="/home/qqlaputa/ftptmpfile"

for file in `ls -A $DIR`

do

FILE1=`date -r $DIR/$file +%s`

FILE2=`date -r $DIR2/tmpfile +%s`

if [ $FILE1 -lt $FILE2 ]

then

   cp -f $DIR/$file $DIR3

   rm -f $DIR/$file

else

echo not older $DIR/$file

fi

done

touch /home/qqlaputa/ftpconfig/tmpfile

sh /home/qqlaputa/ftpconfig/excuteftpupload.sh

#END

[qqlaputa@test ftpconfig]$

****************************************************

[qqlaputa@test ftpconfig]$ cat uploadfile.sh

#!/bin/bash

# Date 02.11.2008

# Purpose: auto upload ftp files

DIR="/home/qqlaputa/test"

DIR2="/home/qqlaputa/ftpconfig"

DIR3="/home/qqlaputa/ftptmpfile"

for file in `ls -A $DIR`

do

FILE1=`date -r $DIR/$file +%s` (注意这里有反引号)

FILE2=`date -r $DIR2/tmpfile +%s`

if [ $FILE1 -lt $FILE2 ]

then

   cp -f $DIR/$file $DIR3

   rm -f $DIR/$file

else

echo not older $DIR/$file

fi

done

touch /home/qqlaputa/ftpconfig/tmpfile

sh /home/qqlaputa/ftpconfig/excuteftpupload.sh

#END

[qqlaputa@test ftpconfig]$ cat excuteftpupload.sh

ftp -v -n 192.168.40.11 << END

user 123_test 123_test

binary

hash

lcd /home/qqlaputa/ftptmpfile

prompt

mput *

bye

END

rm -f /home/qqlaputa/ftptmpfile/*

[qqlaputa@test ftpconfig]$

**********************************************************

定时设置 使用Linux 计划任务程序crontab

#crontab -e

*/3 * * * * /home/qqlaputa/ftpconfig/uploadfile.sh

#用crontab –l 查看计划任务

查看有没有执行

# tail /var/log/cron

查看tmpfile有没有更新

#ls -lrt /home/qqlaputa/ftpconfig

也可以用#mutt查看来没有收到邮件

你可能感兴趣的:(Linux下 定时计划上传ftp文件)