那天在CU里看到有位同学的FTP脚本,做了点修改,希望不至于太土。
能够用awk 来指定不同主机的用户名及密码。附上源码,功能很简单,没有在远端创建目录的动作,也没有将上传动作放到后台。
仅做参考。
#!/bin/sh
# 同时向多个FTP服务器上传文档,文档上传到服务器上该用户的FTP根目录下
#
# 对于任何服务器,目录结构均相同
# 对于每一个服务器,用户名、密码能够不同,能够通过如下形式预定义
# <username>:<passwd>@<hostip>
# 对于username、passwd、hostip,不能包含冒号(:)、花a(@)
# FTP服务器及其上的用户、密码
HOSTCONF="usr1:pass1@host1 usr2:pass2@host2 usr3:pass3@host3"
putit()
{
ftp -i -n -v $HOSTIP <<-PUTIT
user $USERNAME $PASSWD
bin
put $LOCFILE $REMFILE
PUTIT
}
# 指定本地文档名
echo "请指定本地文档名:"
read LOCFILE
# 指定远端文档名
echo "请指定远端文档名:"
read REMFILE
for host in $HOSTCONF
do
# 使用awk分解出主机IP、用户名、密码
HOSTIP=`echo $host | awk -F"@" '{printf("%s", $2);}'`
USRPASS=`echo $host | awk -F"@" '{printf("%s", $1);}'`
USERNAME=`echo $USRPASS | awk -F":" '{printf("%s", $1);}'`
PASSWD=`echo $USRPASS | awk -F":" '{printf("%s", $2);}'`
echo "上传到主机: [ $HOSTIP ] 用户名: [ $USERNAME ] ......"
# 上传文档
putit
echo "上传到主机: [ $HOSTIP ] 用户名: [ $USERNAME ] 结束!"
done
| yjmsx 回复于:2005-05-26 08:36:15 |
| 顶一下 |
| aerfa 回复于:2005-05-26 09:17:57 |
| study |
| defoerol 回复于:2005-05-30 13:48:44 |
| HOSTCONF="usr1:pass1@host1 usr2:pass2@host2 usr3:pass3@host3"
HOSTIP=`echo $host | awk -F"@" '{printf("%s", $2);}'` ?! |
| saintdragon 回复于:2005-06-02 13:54:42 |
| not bad! |
| 七月天*珂 回复于:2005-06-02 16:10:28 |
| 支持一下,顶!!! |
| haja 回复于:2005-06-02 17:18:45 |
| 还行. |
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



