zoukankan      html  css  js  c++  java
  • ftp搭建|Ubuntu下使用vsftpd搭建ftp服务器,并利用crontab定时进行增量更新

    首先,因为自己对linux也不是很熟悉,因为最近完成一项任务用到了,特总结如下,如有不对的地方欢迎拍砖哈。

    一、ftp是什么?(What

    其实我也不太清楚ftp是什么,觉得应该和http差不多,是一种网络协议,以供数据传输。具体的网络知识不是很懂,大家可以具体了解一下。

    二、在Ubuntu下如何搭建ftp?(How

    在Ubuntu下自带的FTP服务器是vsftpd。输入以下命令:

    1 sudo apt-get install vsftpd

    这样其实在Ubuntu下就成功搭建成功,安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地址。应该可以看到一个空白内容的ftp空间。默认设置下匿名用户可以下载,但不能写入或是上传。改变相应的配置需要修改配置文件/etc/vsftpd.conf 。网上说配置之前最好备份一下配置文件,以便日后对照:(这种习惯不错,以后需要注意注意♥):

    1 sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old

    常用参数修改如下:(参考:http://quicker.iteye.com/blog/583117):

      服务器以 standalong 模式运行,如果以 root 用户直接启动 vsftpd 进程,则必须:

     1 # 注销语句以 xinetd 方式运行  
     2 listen=YES  
     3 
     4 # 上传总开关(全局控制)  
     5 write_enable=YES  
     6 
     7 # 接受匿名用户,默认无密码请求  
     8 anonymous_enable=YES  
     9 
    10 # 接受本地用户  
    11 local_enable=YES  
    12 
    13 # 本地用户上传文件(包括目录)的 umask  
    14 # 注意 vsftp 版本,某些旧版的该选项会被 chown_uploads/chown_username 二选项覆盖  
    15 local_umask=022  
    16 
    17 # 允许匿名用户上传文件,配合 anon_umask,否则文件权限皆为默认的 600,用户上传的文件不提供给任何匿名用户下载  
    18 anon_upload_enable=YES  
    19 
    20 # 匿名用户上传文件(包括目录)的 umask  
    21 # 注意点同 local_umask  
    22 anon_umask=022  
    23 
    24 # 允许匿名用户创建目录,配合 anon_umask 实现目录可写,否则依我(aBiNg)看,实际用处很小  
    25 anon_mkdir_write_enable=YES  
    26 
    27 # 允许匿名用户删除/重命名文件等操作  
    28 #anon_other_write_enable=YES  
    29 
    30 # 为 YES 则进入目录时显示此目录下由 message_file 选项指定的文本文件(默认为 .message)的内容  
    31 dirmessage_enable=YES  
    32 
    33 # 使用上传/下载日志,日志文件默认为 /var/log/vsftpd.log,可以通过 xferlog_file 选项修改  
    34 xferlog_enable=YES  
    35 
    36 # 使用 port 模式连接,并启用 20 端口  
    37 connect_from_port_20=YES  
    38 
    39 # 改变用户上传文件的所有者  
    40 #chown_uploads=YES  
    41 #chown_username=whoever  
    42 #xferlog_file=/var/log/vsftpd.log  
    43 
    44 # 日志使用标准 xferlog 格式  
    45 #xferlog_std_format=YES  
    46 
    47 # 用户登陆后 idle 时间,超过设置超则被踢出服务器  
    48 #idle_session_timeout=600  
    49 
    50 # login 时的欢迎信息  
    51 ftpd_banner=Welcome to blah FTP service.  
    52 
    53 #deny_email_enable=YES  
    54 #banned_email_file=/etc/vsftpd.banned_emails  
    55 
    56 # 若为 NO,则记录在 chroot_list_file 选项所指定的文件(默认是 /etc/vsftpd.chroot_list)中的用户将被  
    57 # chroot 在登录后所在目录中,无法离开。如果为 YES,则所记录的用户将不被 chroot。  
    58 chroot_local_user=YES  
    59 
    60 # 设置为 YES 则下面的控制有效  
    61 #chroot_list_enable=YES  
    62 #chroot_list_file=/etc/vsftpd.chroot_list  
    63 
    64 #ls_recurse_enable=YES  
    65 secure_chroot_dir=/var/run/vsftpd  
    66 pam_service_name=vsftpd  
    67 rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem  
    68 rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key  

    具体配置文件解释参考:http://os.51cto.com/art/201003/189123.htm

    不出意外的话,现在应该就可以访问你的ftp了。

     三、在另一台linux机器下用lftp备份你的ftp空间里的资源,并实现增量同步。

    参考http://www.elias.cn/Linux/FtpBackup

    首先如果没有安装lftp,在Ubuntu下安装命令:

    apt-get install lftp

    安装之后便可以使用lftp工具了。

    如果ftp服务器支持匿名连接,你可以简单的使用以下命令连接。

    lftp ftpsite   //例:lftp 10.100.123.123
    

    如果是需要密码的话,可以使用以下命令连接。

    lftp -u username,password ftpsite
    

    这样就连上了ftp远程服务器,当然如果你另一台机器就在你旁边,那你就意会一下这个“远程”的含义吧,呵呵。

    下面我们开始实现增量同步,我们需要用到的是lftp的mirror命令。//这个命令的含义是同步本地的一个文件夹到远程文件夹

    mirror -R 本地目录 远程目录
    

     当然mirror命令的功能远不止这些,如果需要了解其他的功能。可参考http://www.centos.bz/2011/06/incremental-backup-site-using-lftp/

     以后当每次执行这个命令的时候,都会执行一次增量同步。其实lftp也能实现定时同步,大家可以了解一下,再此我使用的是crontab

    定时增量同步:(以每隔一分钟同步为例)

    参考:http://liguxk.blog.51cto.com/129038/123555

    这里需要编写一个脚本文件,所以如果想深入了解的话,还需要有一点shell编程的基础。

    注意:这里需要给脚本文件一个权限,才能正常执行。

    要使脚本可执行:

    编译 chmod +x filename 这样才能用./filename 来运行

  • 相关阅读:
    CSS hacks汇总
    都要靠自己
    不被需要
    我们都是和自己赛跑的人
    其实天底下只有三件事
    开始怀旧了
    JavaScript回调函数陷阱
    郁闷着继续
    清明节悼念逝去亲人
    纯div+css制作的弹出菜单
  • 原文地址:https://www.cnblogs.com/imzhangze/p/2706228.html
Copyright © 2011-2022 走看看