月度归档:2016年04月

VPS自动备份网站数据脚本 自动备份到FTP和Dropbox

数据是网站的命根子,必须妥善保管!勤做备份,做到有备无患。
借助liunx的任务计划crontab,我写了一个自动备份脚本让其在固定时间执行备份操作–打包网站数据备份到FTP空间和dropbox上。
备份到FTP需要系统有安装ftp,现在一般的VPS都默认安装,如发现没有此命令,可以使用如下尝试安装

yum install ftp #centos等redhat系的发行版
apt-get install ftp #debian系的发行版

上传到dropbox首先要建立一个dropbox APP,建立链接在此,如下图 注意不要选择business的app,也不需要full dropbox。
![dropbox-1.jpg][1]
![dropbox-2.jpg][2]
上传还需要用到一个第三方上传脚本Dropbox Uploader,使用如下命令把它下载到备份目录/home/backup并给予执行权限

curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
chmod +x dropbox_uploader.sh

使用此脚本要先进行验证才能上传文件到dropbox,验证步骤如下

./dropbox_uploader.sh

1 输入上面的命令运行它,填入App keyApp secret
2 选择a
3 按y确认
4 复制生成的验证链接到浏览器访问
5 浏览器确认后终端按任意键验证完成

 ./dropbox_uploader.sh

 This is the first time you run this script.

 1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps
 2) Click on "Create App", then select "Dropbox API app"
 3) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
 4) Enter the "App Name" that you prefer (e.g. MyUploader255431153919283)

 Now, click on the "Create App" button.

 When your new App is successfully created, please type the
 App Key, App Secret and the Permission type shown in the confirmation page:

 # App key: xxxxxxxxxxxx
 # App secret: xxxxxxxxxxxx

Permission type:
 App folder [a]: If you choose that the app only needs access to files it creates
 Full Dropbox [f]: If you choose that the app needs access to files already on Dropbox

 # Permission type [a/f]: a

 > App key is xxxxxxxxxxxx, App secret is xxxxxxxxxxxx and Access level is App Folder. Looks ok? [y/n]: y

 > Token request... OK

 Please open the following URL in your browser, and allow Dropbox Uploader
 to access your DropBox folder:

 --> https://www.dropbox.com/1/oauth/authorize?oauth_token=xxxxxxxxxxxx

Press enter when done...

 > Access Token request... OK

 Setup completed!

![dropbox-3.png][3]
![dropbox-4.png][4]

脚本命名为autobackup.sh 内容如下: 本文中autobackup.shdropbox_uploader.sh都放在备份目录,实际操作中请注意路径!

#!/bin/bash

#自定义区
Web_dir=/home/wwwroot               #网站文件夹
Bak_dir=/home/backup                #备份文件夹
Nginx_conf=/usr/local/nginx/conf                    #nginx配置文件夹
Cert_dir=/root/cert                 #证书文件夹
DB_user=root                    #数据库用户名
DB_pass=yourpassword                #数据库用户密码
FTP_IP=yourdomain.com               #FTP网址/IP
FTP_user=ftp                    #FTP用户名
FTP_pass=yourpassword               #FTP用户密码
FTP_dir=/home/backup                #FTP备份目录
#自定义区结束

#定义备份文件名
Web_data=Web_$(date +%Y-%m-%d).tar.gz
DB_data=DB_$(date +%Y-%m-%d).tar.gz
Nginx_data=Nginx_$(date +%Y-%m-%d).tar.gz
Cert_data=Cert_$(date +%Y-%m-%d).tar.gz
Dropbox_dir=/$(date +%Y-%m-%d)
#定义备份文件名结束

#定义旧备份文件名
Old_Web_data=Web_$(date -d -7day +%Y-%m-%d)         #本地和FTP网站数据备份和保留7天
Old_DB_data=DB_$(date -d -7day +%Y-%m-%d)           #本地和FTP数据库备份保留7天
Old_Nginx_data=Nginx_$(date -d -7day +%Y-%m-%d)     #本地和FTP Nginx配置备份保留7天
Old_Cert_data=Cert_$(date -d -7day +%Y-%m-%d)           #本地和FTP证书备份保留7天
Old_Dropbox_dir=/$(date -d -7day +%Y-%m-%d)         #远程dropbox备份保留7天
#定义旧备份文件名结束 保留天数根据自己需要修改

if [ ! -d "$Bak_dir" ]; then
 mkdir $Bak_dir
fi

cd $Bak_dir
#导出数据库备份分别压缩,最后再压缩为一个文件
for db in `mysql -u$DB_user -p$DB_pass -B -N -e 'SHOW DATABASES' | xargs`; do
    (mysqldump -u$DB_user -p$DB_pass ${db} | gzip -9 - > ${db}.sql.gz)
done
tar zcf $Bak_dir/$DB_data $Bak_dir/*.sql.gz
rm -rf $Bak_dir/*.sql.gz

#压缩nginx配置文件
cd $Nginx_conf
tar zcf $Bak_dir/$Nginx_data ./*

#压缩网站数据
cd $Web_dir
tar zcf $Bak_dir/$Web_data ./*

#压缩证书文件
cd $Cert_dir
tar zcf $Bak_dir/$Cert_data ./*

#上传到FTP
#我的FTP服务器不支持主动模式,所以加了 passive 参数以开启被动模式
#如你的FTP支持主动模式,请删除此行参数
ftp -v -n $FTP_IP 

Vultr新用户注册可免费获赠20美元或50美元

之前博客对vultr有过介绍,详见vultr剁手星期一活动:新用户注册送30美元 最低款套餐够用半年~
错过那个机会的朋友现在机会又来了,其又推出了新用户优惠活动,新用户注册时使用优惠码可获赠有效期为1年的20美元信用点,其最低款的VPS为5美元每月,可免费使用4个月。
另外其一直有针对新用户的优惠活动,通过此专用链接注册可获赠50美元信用点数!不过此信用点有效期就只有2个月了,2个月内要用完,到期没用完也会被清空,我们可以开一个月20美元套餐和一个月30美元套餐将其用完。
之前这两个活动是可叠加的,不过最近vultr已经加了限制,二个优惠只有二选一,朋友你会怎么选择呢?
要享受此优惠需要在注册时绑定一个付款方式(信用卡或Paypal),绑定信用卡时会有一笔2.5美元的预授权,此笔交易只为验证信用卡是否有效,不会实际扣款,请不用担心。vultr现在和linode、digitalocean为世界最大的三个云主机商,大公司,信誉方面完全没有问题。
下面简单说下怎么注册获得这个优惠

  1. 点击这里进入vultr
  2. 输入邮箱和密码注册
    vultr1.png
  3. 输入优惠码NGINX20并使用
    vultr4.png vultr5.png
  4. 绑定至少一个付款方式(信用卡、PAYPAL、比特币,注意至少要先绑定前两个付款方式至少一个后才能绑定比特币,因为比特币无法确定你的身份)
    vultr2.pngvultr3.png
  5. 绑定完成后进入账户,你就可以看到信用卡已经充值到你的账户了。

通过新用户优惠链接注册不需要输入任何优惠码,不过也需要绑定至少一个付款方式!
vultr6.png

KVMLA旗下PZEA年付便宜VPS

PZEA是KVMLA旗下的一家新主机商,KVMLA是一家国人主机商,成立于2011年。其提供的服务几年来口碑还算良好,其老总–“K总”常活跃于全球主机交流论坛,是个技术牛人,也正是这份技术功底,使其撑过了国人IDC成立初期的残酷竞争期(DDOS攻击和CC攻击轮番上阵,能撑过来的都是运维水平过硬的),保障了其服务稳定性。
PZEA现提供亚洲KVM、美国KVM和便宜VPS三种VPS主机,KVM能提供更好的性能,更大的系统自主性,其相应价格也更高,真正做网站的朋友可选择KVM架购的VPS。
我们主要说的是其便宜VPS(shadowsocks不需要太强大的性能),目前其提供了最低款年付12美元的套餐,套餐详情如下
1核 CPU
256 RAM(内存)
15GB RAID10 Disk(硬盘)
1 IPv4(IP地址)
100Mbit Up/Down(百兆网口)
500G Monthly Traffic(500G月流量)
有三个数据中心可选,分别为洛杉矶、凤凰城、弗里蒙特,都是美国西部的城市,对大陆连接速度相对较快,如对一个数据中心不满意,还可发服务单申请迁移到另外的数据中心。
另外其更高级别的便宜VPS套餐(level2以上)目前正在做一个优惠活动,年付款可选10个IP的套餐包,价格不变,有多IP需求的朋友一定不要错过这个机会了!
其结算周期为自然月结算,付款时会自动扣除当月已过天数的款项。
Level1
CPU:1 core RAM:256M HDD:15G IPV4:1 Bandwidth:500G 年付$12.00 USD

Level2
CPU:2 core RAM:512M HDD:30G IPV4: 1 Bandwidth:800G 月付$2.75 年付$29.5 免费10个IP
L2-1.png
L2-2.png
L2-3.png
Level3
CPU:3 core RAM:1024M HDD:70G IPV4: 1 Bandwidth:1200G 月付$4.75 年付$55 免费10个IP
L3-3.png
Level4
CPU:4 core RAM:2048M HDD:100G IPV4: 1 Bandwidth:1500G 月付$6.75 年付$68.5 免费10个IP
L4-3.png
其支持paypal和alipay(支付宝)付款,不习惯花外币的朋友可在注册时选择结算货币为人民币(CNY),支付时使用支付宝支付,非常方便。

使用路由器搭建VPN服务器方便在外时远程访问家里的网络

家里有台小型服务器–HP ProLiant MicroServer Gen8,安装了WINDOWS SERVER 2012,使用自带的hyper-v搭建虚拟机环境,上面跑了一个黑群、一个DEBAIN、一个XP。
为方便在外时访问家里的服务器,我使用路由器搭建了VPN服务器,在外时远程连接到此VPN,就跟在家里一样管理了。
外网访问首选要解决的就是ADSL拨号获得的IP不固定的问题,每次猫重启下,IP就变了,你在外时不知道家里的IP地址,什么都不用谈了。
我使用的办法是DDNS动态DNS域名解析的办法(还有另一种办法就是使用一台有固定IP的服务器进行转发,因为我的服务器都是国外的,转发到国内速度太慢,还容易断线,所以无法使用此方法),搭建VPN服务器的是二级路由,一级路由是一个TP-LINK的猫+路由一体机,在TP上设置花生壳DDNS之后在端口转发功能里把PPTP VPN的1723端口转发的二路路由的IP上。
二级路由器为网件WNR-3500L V1版,BCM47XX 64M内存 8M FALASH,刷了DD-WRT,可以很方便得搭建VPN服务器。
简单说下DD-WRT环境下VPN服务器的设置方法
DDWRT VPN1.png
照着上图那个设置就行了。最下面的CHAP-Secrets是用户名和密码的输入框,输入格式为

用户名 * 密码 *

密码前后的*要用空格隔开

说明:我家里的子网为192.168.0.1,DHCP分配本地IP范围192.168.0.100-150,我把VPN分配IP设为192.168.0.151-200,试过设置为和家里网络不同网段的,服务器IP设为192.168.10.1,分配IP设为192.168.10.100-200,也可以正常连接,不过就不能通过VPN连接上Internet了,目前还没找到把VPN分配IP设为不同子网而又能正常上网的办法,如果你知道怎么解决,望不吝回复赐教!
设置完了之后不要忘了应用设置!接着说下客户端的连接(以WINDOWS7为例)
CLIENT VPN1.png

CLIENT VPN2.png
CLIENT VPN3.png
CLIENT VPN4.png
CLIENT VPN5.png
CLIENT VPN6.png
CLIENT VPN7.png
CLIENT VPN8.png

本博客搬离Hosthatch

三天前,香港softlayer机房不再提供直连大陆的线路,导致从大陆访问其服务器的流量要绕太平洋两回,延迟很高。
本博客之前托于Hosthatch香港节点,其就是位于Softlayer机房,所以本博客也悲剧了,访问慢了很多。
我手上的服务器还是很多的,一处不行就迁移到另一处吧。
今天花了点时间把博客搬到了DigitalOcean的旧金山节点,速度快了很多,虽然还是得跨越太平洋,但起码不用绕路两趟了!
说下步骤,很久没弄这个了感觉都有点生疏了
1、ssh登陆hosthatch的VPS,备份网站数据

tar zcvf web.tar.gz /home/wwwroot

2、登陆phpmyadmin备份数据库,把数据库备份下载到本地
3、备份服务器https证书,用的是letsencrypt的证书,我直接把git的整个文件夹打包
4、备份网站的nginx配置文件(因为我做地一些自定义修改,直接把配置文件复制过去省掉手工输入的麻烦)。
5、ssh登陆新服务器,把上面打包好的网站数据,证书,配置文件等一一weget过来,解压放到对应的位置。
6、登陆新服务器的phpmyadmin,导入上面下载到本地的数据库备份文件。
7、修改域名解析记录,等其生效就OK了!
有个小插曲 我直接复制nginx的配置文件到nginx的vhost文件夹,忘了重启nginx使其生效了,最终导致解析生效后访问不正常,重启后OK。

德国海淘最恶心的商家-WINDELN

在中国想当好一个称职的奶爸奶妈真是不容易,给宝宝吃的、用的、穿的商品各种不放心,这种不放心也催生的轰轰烈烈的海淘奶爸奶妈党。
之前我一直在德亚购买aptimal奶粉,发货迅速,价格适中(PS:各国的AMAZON真是海淘党购物首选),这次要购买2段的奶粉,无奈看到德亚上都断货了。
宝宝口粮可不能因断货就不买了,辗转搜索看到了WINDELN.DE,说是德淘购物首选,货物齐全,很少断货,上去看了下,果然有这个奶粉卖,价格也跟德亚一样,没说的,购买吧。
没想到的是,等到我注册好,填入转运地址后,购物车被清空了,账号也被退出了,这是什么情况?
再登陆上去,看到的奶粉价格变了,涨了28%。。。
然后退出登陆,启用浏览器隐身模式再去看,价格还是原来的价格。
总算明白了,WINDELN有两种价格,一种针对中国人,一种针对外国人,中国人价格贵28%!
我家路由有自动切换线路功能,检测到访问国外网站,自动走美国代理(显示美国IP),所以最开始WINDELN以为我是美国人,所以显示的是外国的的价格,之后我注册登陆了,输入了转运的地址,这下WINDELN就确定我是中国人(外国人一般不使用转运地址),就把我退出登陆,再登陆上去就显示中国人“专属”价格
这个是外国人的价格price 1.jpg
这个是中国人的价格price 2.png
如此赤粿粿的歧视,再在他家买东西那是脑袋被门夹了!
海淘到现在,转战美国、英国、法国、德国等多家电商,WINDELN可算是最恶心、最没节操的,给大家提个醒,不要去这家买任何东西,一家节操掉了的电商,东西用着也不放心的。
再过几天看看德亚有没有上货,有就在那买,没有就找香港的朋友从香港买了。