使用FTP传档案虽不难,但若老是得要您亲自手动来传,这不仅累人而已也更糟蹋了Linux这多人多工作业系统!
本文便是Auto-ftp和Mirror这二种档案传的输应用,希望藉由cron作业方式让您的传档作业能达到自动化。
各位亲爱的读者在使用Linux时,是否时常必须固定到某些FTP site传回一些档案,或是公司内部分支机构必须定时将某些file传回总公司以便处理,这时如果您还固定用人工手动作ftp档案传输的话,那麽您就落伍了,平平白白浪费了Linux这多人多工的作业系统所赋予您的PC强大的功能了。
本文要介绍的是除了mail-ftp之外的两个应用:Auto-ftp和Mirror这二种档案传输应用,并利用cron将之自动化的作业方式。希望经由本文的介绍,能够让您的作业尽量自动化,减少人工的介入并尽量发挥Linux或unix的多工特性。
版本说明
1.本文使用Slackware Linux 2.1.0作范例,若您使用的是SunOS,IBM AIX等vendor's Unix 的话,Auto-ftp部份应可正常工作(或只需作少许修改),Mirror部份则须先安装Perl-4.036。
2.Perl最新版本为Perl-5.00 Beta,Mirror使用时会有错误讯息,笔者认为应该是前後版本相容性的问题。笔者强烈建议您使用Perl-4.036以维持正常。Perl-5.00和Perl-4.036均可自NCTUCCCA.NCTU.edu.tw FTP server下的/UNIX/gnu目录取得。
Auto-ftp传输档案
ftp是TCP/IP协定的叁大主要应用—telnet、ftp、email之一,平时在unix和unix系统之间主要的档案传输,就以ftp使用得最普遍与频繁,譬如说,我要将Linux 1.1.6x的patch file,自NCTUCCCA.NCTU.edu.tw传回我的Linux主机的话,那麽我就可以用Anonymous ftp经由下列作法来达成这个目的。(编按:请参考本刊光碟片\AUTHOR\FTP\FTP1.txt)
基本的Anonymous ftp操作大抵不脱此操作过程。但若您是某大企业分支机构的人员,每天得把日结资料传回总公司去、或是您在Internet网路上,每周日凌晨3:00在Internet线路较空闲时去国外某大ftp site传回一些定期更新的档案的话,您该不会凌晨3:00爬起来传档案吧?
这时用Auto-ftp加上cron的定时功能,必定能够对您的工作有相当的帮助。ftp有个参数-n是可以作ftp auto-login的功能,可是我们一般在用ftp时却甚少使用到,下例的shell script即以ftp auto-login来作说明。
这时执行getpatch:
getpatch即会将linux-1.1.59.tar.gz与patch6*自NCTUCCCA.NCTU.edu.tw这个ftp server的/Operating-Systems/Linux/kernel/v1.1目录传回您所在的Site Home directory下的patch目录中。
相同的,您若要将档案送出,只要将source和target,me,mypass等变数作些符合您所在环境条件的修改,并将mget改成mput,即可将档案送出。
这时再将Auto-ftp和cron定时功能结合,即可作定时的Auto-ftp档案传输。
#----------------------------------------------------------------
% cat ./cron_file
# Minutes Hour Day- Month Day- Command
# of- of-
# Month Week
# 0-59 0-23 1-31 1-12 0-6
#----------------------------------------------------------------
10 2 * * * /user1/roylin/getpatch
# 定义每天凌晨2:10执行getpatch
用crontab指令启动cron_file将cron启动:
% crontab cron_file
再使用crontab -l指令来看crontab动作的内容:
% crontab -l