Posted on 2009-04-10 19:25
Prayer 阅读(779)
评论(0) 编辑 收藏 引用 所属分类:
Shell
通过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 "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!"
―――――――――――――――――――
本文出自 “徒步天下我的梦” 博客,请务必保留此出处http://hiker2008.blog.51cto.com/10867/19