免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4598 | 回复: 6
打印 上一主题 下一主题

如何编写一个自动FTP登录脚本或者类似的交互式脚本阿? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-29 15:39 |只看该作者 |倒序浏览
想写一个自动登录FTP的脚本,脚本如下:
if [ "$#" -eq "0" ] ; then
  echo "ERRORNUM:6000 ERRORMSG:NO PARAMETER"
        exit ;
elif [ "$#" -eq "1" ] ; then
  IDandPSW=`echo "$1"`
fi
IDname=`echo $IDandPSW | awk -F"," '{print $1}'`
PSW=`echo $IDandPSW | awk -F"," '{print $2}'`

ftp 192.168.169.220 << EOF
$IDname
$PSW


为何执行结果确无法传入用户名和密码:
# sh sys_ps_m.sh "root,root"
Password:Name (192.168.169.220:root):

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
2 [报告]
发表于 2007-12-29 15:43 |只看该作者
试试:

ftp -n 192.168.169.220 << EOF
user "$IDname" "$PSW"
bye
EOF

论坛徽章:
0
3 [报告]
发表于 2007-12-29 15:46 |只看该作者
好像不可以阿,我的意思是拿登录FTP这个来举例子,如果有类似的需要输入用户名和密码的交互式程序,要用脚本如何编写阿,并且在用户名密码输入错误后如何再次输入,谢谢各位大虾了

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
4 [报告]
发表于 2007-12-29 15:51 |只看该作者
http://bbs.chinaunix.net/thread-674903-1-1.html
5楼,关于自动执行交互任务

论坛徽章:
0
5 [报告]
发表于 2007-12-29 15:54 |只看该作者
不好意思,楼上大哥的代码可以执行,但是如果是别的交互式的程序呢?需要输入用户名和密码的话怎么处理阿?

论坛徽章:
0
6 [报告]
发表于 2007-12-30 01:57 |只看该作者
(
  sleep 2;echo "$uname"
  sleep 2;echo "$passwd"
  sleep 2;echo "command"
)| telnet $IP
| ftp $ip

论坛徽章:
0
7 [报告]
发表于 2008-01-01 05:00 |只看该作者
参考下这个
REMOTEHOST=201.10.10.10
USERNAME=bossjf
PASSWORD=jmccboss1
SOURCEPATH=/aaa/aa/data/cm_rawpathbak
TARGETPATH=/aa/aa/s2/rawpath_backup

        echo open $REMOTEHOST > cmdfile
        echo user $USERNAME $PASSWORD >> cmdfile
        echo cd $SOURCEPATH >> cmdfile
        echo nlist >> cmdfile
        echo "bye" >> cmdfile
        ftp -in < cmdfile > remoteDirList
        if [ $? -ne 0 ]
        then
                #sleep 300
                continue
        fi
       
       
       
        if [ -s remoteDirList ]
        then
            
            echo "  <Begin time>" `date`  > mget.log
            echo "  <Begin time>" `date`
            
              while read SOURCEDIR
                do
                        #获得远程主机指定子目录下的文件名
                        echo open $REMOTEHOST > cmdfile_sub
                        echo user $USERNAME $PASSWORD >> cmdfile_sub
                        echo cd $SOURCEPATH/$SOURCEDIR >> cmdfile_sub
                        echo nlist >> cmdfile_sub
                        echo "bye" >> cmdfile_sub
                        ftp -in < cmdfile_sub > remoteFileList
                        if [ $? -ne 0 ]
                        then
                                #sleep 300
                                continue
                        fi
               
                        echo open $REMOTEHOST > cmdfile
                        echo user $USERNAME $PASSWORD >> cmdfile
                    echo "bin" >> cmdfile
                echo "prompt off" >> cmdfile
            
                        echo cd $SOURCEPATH/$SOURCEDIR >> cmdfile
                          echo lcd $TARGETPATH >> cmdfile
                        echo !mkdir $SOURCEDIR >> cmdfile
                        echo lcd $SOURCEDIR >> cmdfile
                    
                    while read SOURCEFILE
                    do
                                    echo "get $SOURCEFILE" >> cmdfile
                                    echo "del $SOURCEFILE" >> cmdfile
                        done < remoteFileList
                 
                         echo "bye" >> cmdfile
                    ftp -vin < cmdfile >> mget.log
                     
                done < remoteDirList
       
            echo "  <End time>" `date`  >> mget.log
        fi
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP