通过UNIX SHELL脚本实现FTP自动传输 问题提出:因工作需要,要业务系统要求作完日终后,把数据从主机通过FTP 传送到备机。 需要分析: 1.每天日终时间不同,所以最好是手工编制脚本,当业务人员日终完成后,手动调用,而不能通过任务调度来实现。 2.每天要传送的数据文件名不同(与日期相关),所以要在脚本中处理文件名。 3.需要业务人员提供的信息越少越好,每天操作,命令多了,出错的机会也多。 具体脚本如下:(在 Sco Open Server 5.0.x 上测试通过)。 希望对大家有所帮助。 ―――――――――――――――――― #!/bin/sh #取得年月日 YYYY=`date "+%Y"` MM=`date "+%m"` DD=`date "+%d"` filename="$YYYY$MM$DD" #显示年月日 echo "Input Backup Date: ($filename) \c" #读取输入,如果是当天日期,可直接回车 read filename if test -n filename then echo "Backup Date: $filename" else filename="$YYYY$MM$DD" echo "Backup Date: $filename" fi #取得日期后,写一个 FTP 脚本 #备机地址 echo "open 1x.xx.xx.x0"> ftp.cmd #备机用户,密码 echo "user loginname password">>ftp.cmd echo "bin">>ftp.cmd echo "hash">>ftp.cmd #备机目录 echo "cd /usr/database">>ftp.cmd #文件名为 data20070310 echo "put data$filename">>ftp.cmd echo "close">>ftp.cmd echo "bye">>ftp.cmd cd /usr/database #自动执行 ftp cat $HOME/ftp.cmd|ftp -n echo "Auto Backup $filename Data Finished!" ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 自动 ftp脚本(全参数版) #!/bin/sh #================================================================== #* #* Copyright (c) 2005, dinner3000 #* All rights reserved. #* #* 文件名称:auto_trans.sh #* 文件标识: #* 摘 要:自动 ftp 脚本(全参数版) #* 作 者:dinner3000 #* 修 改 者: #* 修改内容: #* 修改时间: #* 版 本:2005-5-12 #* $Id$ #* #================================================================== #local variable PS_FULLNAME=`basename ${0}` #脚本全名 PS_EXT=`echo ${PS_FULLNAME} |awk...