shell脚本编程-例子_自动登陆ftp备份
2015-10-17 22:11
876 查看
ftp很常见的是用于存取文件的应用,它也用于日常备份。这种周期性的工作无疑需要通过自动化脚本来完成。本次系统为CentOS7
本次实验需要你做如下操作:
1.修改ftp服务器的配置文件/etc/vsftpd/vsftpd.conf,将anon_upload_enable=YES,前面的注释符去掉,即允许匿名用户上传文件;
2.在下一行中增加anon_other_write_enable=YES,即允许匿名用户覆盖同名文件,并重启vsftpd服务配置生效.
3.创建上传目录并赋予合理的权限,命令如下:
4.在另一台服务器上创建ftp自动上传下载脚本:autoftp01.sh
注意:将ftp的用户名和密码以明文的方式写在脚本中,这可能是个安全隐患,将用户名和密码分离出去,
5.默认情况下,直接用ftp命令并按回车就会进入ftp的自动登陆模式,此时ftp命令会读取用户家目录下的.netrc文件,默认情况下这个命令是不存在的,我们可以创建你一个:
这次我们直接用ftp命令可以发现能直接登陆了:
6.最后利用netrc自动登陆,将autoftp01.sh脚本改为autoftp02.sh,可以完成同样的功能.如下:
结果如下:
祝你成功。对了,<< EOF 不懂得话可以查查.
2015年10月17日22:09:43
本次实验需要你做如下操作:
1.修改ftp服务器的配置文件/etc/vsftpd/vsftpd.conf,将anon_upload_enable=YES,前面的注释符去掉,即允许匿名用户上传文件;
2.在下一行中增加anon_other_write_enable=YES,即允许匿名用户覆盖同名文件,并重启vsftpd服务配置生效.
[cos@localhost cos]$ systemctl restart vsftpd.service
3.创建上传目录并赋予合理的权限,命令如下:
[cos@localhost cos]$ mkdir /var/ftp/upload [cos@localhost cos]$ chown ftp:root /var/ftp/upload
4.在另一台服务器上创建ftp自动上传下载脚本:autoftp01.sh
[cos@localhost shell]$ touch TestUpload #在本地创建TestUpload用于脚本上传. [cos@localhost shell]$ cat autoftp01.sh #!/bin/bash GET_FILENAME="TestDownload" PUT_FILENAME="TestUpload" SERVER_IP="192.168.88.103" USER="anonymous" PASS="" FTP=/usr/bin/ftp $FTP -n $SERVER_IP << EOF quote USER $USER quote PASS $PASS Binary get $GET_FILENAME cd upload put $PUT_FILENAME EOF
注意:将ftp的用户名和密码以明文的方式写在脚本中,这可能是个安全隐患,将用户名和密码分离出去,
5.默认情况下,直接用ftp命令并按回车就会进入ftp的自动登陆模式,此时ftp命令会读取用户家目录下的.netrc文件,默认情况下这个命令是不存在的,我们可以创建你一个:
[cos@localhost cos]$ vim .netrc default login anonymous password '\n' #默认用户和空密码
这次我们直接用ftp命令可以发现能直接登陆了:
[cos@localhost ~]$ ftp 127.0.0.1 Connected to 127.0.0.1 (127.0.0.1). 220 (vsFTPd 3.0.2) 331 Please specify the password. 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
6.最后利用netrc自动登陆,将autoftp01.sh脚本改为autoftp02.sh,可以完成同样的功能.如下:
[cos@localhost ~]$ vim autoftp02.sh #!/bin/bash GET_FILENAME="TestDownload" PUT_FILENAME="TestUpload" SERVER_IP="192.168.88.103" FTP="/usr/bin/ftp" $FTP $SERVER_IP << EOF binary get $GET_FILENAME cd upload put $PUT_FILENAME EOF
结果如下:
[cos@localhost shell]$ chmod 777 autoftp02.sh [cos@localhost shell]$ ls autoftp01.sh autoftp02.sh TestUpload [cos@localhost shell]$ ./autoftp02.sh [cos@localhost shell]$ ls autoftp01.sh autoftp02.sh TestDownload TestUpload
祝你成功。对了,<< EOF 不懂得话可以查查.
2015年10月17日22:09:43
相关文章推荐
- Linux战地日记—shell脚本的建立与执行
- shell命令
- shell中的数组
- python实现netcat(文件传输、反弹shell)
- Shell grep 或 egrep 或awk 过滤两个或多个关键词
- Linux学习 -- Shell编程 -- 正则表达式
- 第 三 十 三 天:shell 编 程 之 监 控 脚 本
- 浅析shell 的含义及作用
- shell中使用vi退出的注意事项
- Linux学习 -- Shell基础 -- Bash变量
- 在命令行中通过adb shell am broadcast发送广播通知
- opensuse 虚拟机配置连接外网 和 远程xshell访问
- 【亲测好用!】shell批量采集百度下拉框关键词
- 第 三 十 三 天:shell编程之一键安装LAMP/LNMP
- 编写更好 Bash 脚本的 8 个建议
- shell学习的点点滴滴―启动脚本
- 学习的点点滴滴shell+sql
- 编写更好 Bash 脚本的 8 个建议
- 解决Window系统adb shell后中文显示乱码
- powershell 调用winform dll