利用rsync同步本地图片文件到服务器(完结篇)

/ 0评 / 0

各位看官本文章为特色要求服务,国内服务器版本请按照七牛同步文件夹文章制作.

为什么这里Sandy要用到这个技能呢?因为打怪的路上很墙.....有备案墙拉,GFW墙拉....太多怪了!所以需要用到这个技能

例如:

本地采集器服务器:192.168.1.2 (windows 7)

本地图片服务器:192.168.1.3 (ubuntu 16)

网络图片服务器:191.1.1.1 (ubuntu 16)

rsync -avz -e ssh /home/wwwroot/default/pic/ root@191.1.1.1:/home/wwwroot/pic

我们在执行这段代码的时候会要求你输入密码,不利于自动化.

所以我们需要无密码登录SSH

应该怎么做呢?如下操作:

1.首先我们在ubuntu设置无密码登录SSH
现在我们来配置ssh使得通过ssh执行rsync时不再索要密码。在本地服务器上使用ssh-keygen生成公钥和秘钥,如下命令:

$ ssh-keygen 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

注意:当它要求您输入passphrase按下enter键,不需要给任何密码

使用ssh-copy-id命令将公钥拷贝至远程主机

$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@191.1.1.1

注:执行以上操作时会要求你输入远程主机帐户和密码,然后就会自动将公钥拷贝至远程目录。

现在,你可以不需要密码通过ssh连接到远程主机

再次执行rsync,它将不再要求你输入密码

$ rsync -avz -e ssh /home/wwwroot/default/pic/ root@191.1.1.1:/home/wwwroot/pic

ubuntu 通过rsync同步到服务器

 2.利用crontab定时执行同步

crontab -e
#每三分执行一下图片同步
*/3 * * * * rsync -avz -e ssh /home/wwwroot/default/pic/ root@191.1.1.1:/home/wwwroot/pic

这样就完成了Rsync部分了

但是问题又来了,我不想在本地图片服务器装个LNMP或者FTP之类的.也不想通过采集器去上传到本地图片服务器(采集东西多了太慢),于是Samba来了

3.本地图片服务器建立Samba

安装Samba

sudo apt-get install samba samba-common-bin

打开Samba配置文件:

vi /etc/samba/smb.conf 

在其最后添加:

[share]  
    path = /home/wwwroot/default/pic
    valid users = share
    available = yes  
    browseable = yes  
    writable = yes  
    public = no  

创建Samba用户

sudo useradd username
sudo smbpasswd -a username 

重启Samba

sudo service smbd restart

测试
在Ubuntu的Files底部的Network中选择Connect to Server, 然后在弹出来的对话框中深入smb://192.168.1.3/share, 然后点击右下角的Connect按钮. 此时会提示输入密码(在第3步中创建),输入密码后即可进入共享目录。

在Windows电脑上,输入“\\192.168.1.3\share”,然后输入用户名(share)和密码后,既可以访问了! 或者通过我的电脑右键映射服务器也可以

然后把采集器图片保存目录指向网络共享盘即可.这样采集数据就会快很多了

 

发表评论

邮箱地址不会被公开。 必填项已用*标注