各位看官本文章为特色要求服务,国内服务器版本请按照七牛同步文件夹文章制作.
为什么这里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 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)和密码后,既可以访问了! 或者通过我的电脑右键映射服务器也可以
然后把采集器图片保存目录指向网络共享盘即可.这样采集数据就会快很多了
评论
发表评论