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 来运行

原文地址:https://www.cnblogs.com/imzhangze/p/2706228.html