简单易懂的ftp脚本自动登录教程

最近发现一款不错FTP服务器批量管理工具,推荐一下)
工具:FTP客户端-IIS7服务器管理工具
简介:作为FTP客户端,它支持批量管理ftp站点
定时上传和定时下载,定时备份,且操作简洁等
官网地址

我在上上篇《nmon脚本——对Linux服务器的监控》的脚本中,使用了ftp的自动登录。结果有人询问,遂决定专门写一篇简单易懂的博客,来说明如何解决ftp的自动登录问题。


一、Windows

在windows下非常简单,windows下的ftp客户端有一个-s参数可以带一个文件,用ftp -s去执行就可以。

  • 把所有在ftp命令行下要输入的内容照原样输入到autologin.txt中:
open 10.60.56.90
whb
123456
get test
close
bye
  • 输入命令:
E:/>ftp -s:autologin.txt
  • 得出结果:
ftp> open 10.60.56.90
Connected to 10.60.56.90.
220 (vsFTPd 2.0.5)
User (10.60.56.90:(none)):
331 Please specify the password.
230 Login successful.
ftp> get test
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for test (5 bytes).
226 File send OK.
ftp: 收到 5 字节,用时 0.00Seconds 5000.00Kbytes/sec.
ftp> close
221 Goodbye.
ftp> bye
E:/>
注意:如果是匿名登录,密码那一行留空。

二、Linux

在linux下,上面的方法失效,不过条条大路通罗马,不虚。

方法一:

#!/bin/bash
SERVER=server
USERNAME=username
PASSWORD=password
ftp -n $server <<SCRIPT
quote USER $username
quote PASS $password
cd remote_path
lcd local_path
binary
verbose
get something
put something
close
quit
SCRIPT

方法二:

#!/bin/bash
SERVER=server
USERNAME=username
PASSWORD=password
ftp -n $server <<SCRIPT
user $USERNAME $PASSWORD
cd remote_path
lcd local_path
binary
verbose
get something
put something
close
quit
SCRIPT

方法三:

使用.netrc,还可以用man netrc看这个文件的配置参数。

  • 比如写如下的.netrc文件:
machine whb
login whb
password 123456
 
machine node6
login globus
password 123456
  • 输入命令:
[whb@jcwkyl ~]$ chmod 600 .netrc
[whb@jcwkyl ~]$ ftp node6
  • 得到结果:
Connected to node6.jlu.edu.cn.
220 (vsFTPd 1.1.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
331 Please specify the password.
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
注意:如果.netrc文件中使用password设置了ftp登录密码,那么除该文件所有者外,其他用户对该文件都不能有读权限,否则自动登录会失败。

除此之外,网上还有其他许多ftp自动登录的实现办法(比如expect)等等,都可以google到,这里就不再阐述了。

posted @ 2019-12-12 16:04  WoLykos  阅读(2358)  评论(0编辑  收藏  举报