• shell脚本编程-例子_自动登陆ftp备份


    ftp很常见的是用于存取文件的应用,它也用于日常备份。这种周期性的工作无疑需要通过自动化脚本来完成。本次系统为CentOS7

    本次实验需要你做如下操作:

    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 '
    '  #默认用户和空密码

    这次我们直接用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

  • 相关阅读:
    Django中间件
    cookies与session
    Django Form组件
    Django 自定义分页器
    Django 批量插入数据
    Ajax
    图书管理系统
    Django常用字段及参数、事务、数据库查询优化
    Django之F与Q查询
    课堂测试-统计单词个数和字母出现频率
  • 原文地址:https://www.cnblogs.com/xccnblogs/p/4888420.html
Copyright © 2020-2023  润新知