分类目录归档:default

ss公共服务器定时更改密码并同步更新到博客

公共服务器两天前就搭建好了,折腾了一阵,终于实现自动定时更改连接密码再自动在博文中更新它。
看到别人是通过php实现的,但博主我php拙计,只懂得一点shell脚本,最终通过shell弄好了,脚本分享出来,有一样需要的朋友可参考。

#! /bin/bash
#更改FTP的IP 用户名 密码
ftp_ip=glorystar.me
ftp_user=ftp
ftp_passwd=yourpasswd
#更改部分结束
passwd=`cat /dev/urandom | head -1 | md5sum | head -c 8`
cat > /etc/shadowsocks/config.json << EOF
{
    "server":"0.0.0.0",
    "server_port":8989,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"$passwd",
    "timeout":60,
    "method":"chacha20"
}
EOF
echo $passwd > /home/wwwroot/passwd.txt
cd /home/wwwroot
ftp -v -n $ftp_ip << END
user $ftp_user $ftp_passwd
passive
delete passwd.txt
put passwd.txt
bye
END
/etc/init.d/shadowsocks restart
exit

crontab定时执行以上脚本,我设定的是每天1时更改一次。

0 1 * * * sh ~/sh/ss.sh

解释一下脚本的实现过程
1 通过dev/urandom生成随机8位密码
2 用这个随机密码配置ss配置文件。
3 输出这个密码到passwd.txt文本文件,这个文件可供http访问。本来到这一步也就完成了,但因为vps服务器没有上ssl,在博客上直接引用这个txt文件会提示不安全内容而不加载,要手动加载,比较麻烦,所以有了下面的步骤。
4 通过ftp把这个passwd.txt上传到博客所在的服务器,博文上直接引用本地资源就不会有问题了。
PS 如果你的博客没有ssl,可以忽略ftp部分。

在博文上引用这个txt文件可通过iframe实现。

<iframe name="txt" marginwidth="0" marginheight="0" width="70" height="15" src="passwd.txt" frameborder="0"></iframe>

给用作公共服务器的vps安装vnstat流量监控

安装教程参照军哥的Linux VPS流量查看/监测工具 — vnStat 原教程有坑,在这里也把我的安装过程说下

1.下载vnstat和vnstat php frontend

wget http://soft.vpser.net/status/vnstat/vnstat-1.9.tar.gz
wget http://soft.vpser.net/status/vnstat/vnstat_php_frontend-1.5.1.tar.gz

2.安装vnstat

tar zxvf vnstat-1.9.tar.gz
cd vnstat-1.9
make && make install

3.把vnstat php frontend放到网站目录

tar zxvf vnstat_php_frontend-1.5.1.tar.gz
mv vnstat_php_frontend-1.5.1 /home/wwwroot/default/vnstat

4.配置vnstat

cat > /var/lib/vnstat/dump.sh<<EOF
vnstat -u -i eth0
vnstat --dumpdb -i eth0 >/var/lib/vnstat/vnstat_dump_eth0
EOF

把这个脚本加入crontab每五分钟执行一次

crontab -e
*/5 * * * * sh /var/lib/vnstat/dump.sh

5.配置vnstat php frontend

cd /home/wwwroot/default/vnstat
vi config.php
#指定显示标题
$iface_title['eth0'] = 'vultr-vps';
#设置以什么图片格式显示图表,可选svg和png,png兼容更好,默认svg,我们改成png。
$graph_format='png';
#指定安装目录,默认如下不用更改
$vnstat_bin = '/usr/bin/vnstat';
#指定数据目录,改为之前我们通过脚本每五分钟dump出来的那个目录。
$data_dir = '/var/lib/vnstat/';
#其它项可不更改。

遇到的坑
vnstat php frontend需要popen函数,lnmp1.0之前的版本没有禁用函数,所以军哥也没在他的教程里指出来,之后的版本都禁用掉了这个函数,导致访问vnstat页会无响应,php-fpm进程会占用100%CPU。
解决办法是解禁popen函数

vi /usr/local/php/etc/php.ini
#把disable_functions里的popen删除掉。
lnmp restart

vnstat
之后访问就正常了,搞定收工~

Netgear网件官方固件的qos还挺好用的

苦逼的博主家里的网络还是电信6M(0.5M上行),平常使用还好;但是周末时哥嫂回到家里网络就真的是炸了,近十台手机,起码得有两个人同时用手机看在线视频,老妈还要看电视–乐视网络视频,那时电脑真的是看个网站都不顺畅,卡半天才能刷出来。

农村地区,还没光纤覆盖;打电话给电信说要升级宽带,被告知6M已达到这条线路的最大宽带,没有资源再供提速了。

因为这种情况,路由器qos成了刚需,前阵一直在折腾这个,下面把折腾的过程说下。

最先家里网络主路由是一个TP-LINK的猫路由一体机,下面再接一个NETGEAR WNR-3500Lv1提供有线千兆网络,因为这个路由的无线信号不强,又另接了个newifi mini专做ap。

首先开刀的是WNR-3500Lv1,原来刷了openwrt在用,因为听说tomato的qos比较强,就刷了一系列的tomato固件:tomato dualwanTomato by Shibby,一番使用下来,发现开启了qos也没有什么效果,完全无法限制住迅雷,虽然迅雷下载速度能被限制到100kb/s,但网络还是很卡,而网络总使用率不到400kb/s,但迅雷开启了近2000个并发连接,以为是主路由的锅,他的性能无法承受这个连接数。于是设置不使用tp-link的路由功能,把它当作一个纯粹的宽带猫来使用,使用桥接由wnr3500lv1进行拨号上网。但这样设置了,问题依旧。好吧,估计是电信作了连接数限制吧。

之后还设置过在tomato上命令配置限制连接数,但效果也不明显。

之后在齐齐奔跑—Alex看到了这个qos限速脚本

#bbs.dualwan.cn 2015-8-14 by cheng1196  qq372693586
#这是OPENWRT固件与Tomato固件通用智能限速脚本
#装载核心模块
insmod cls_u32
insmod em_u32
insmod act_connmark
insmod act_mirred
insmod sch_ingress
insmod cls_fw
insmod sch_htb
insmod sch_sfq
insmod sch_red
#设置局域网处于192.168.1.0的网段
UIP="192.168.1."
NET="192.168.1.0/24"
#设置限速的ip地址192.168.1.100到192.168.1.130
#DHCP分配也需要设置192.168.1.100到192.168.1.130
IPS="100"
IPE="130"
#设置宽带的最大上传下载速度,UP上传,DOWN下载,1兆等于128,这是20兆光纤上传与下载
UP=384
DOWN=2560
#装载核心模块,创建QOS专用链
insmod imq
ifconfig imq1 up
ifconfig imq0 up
iptables -t mangle -N QOSUP
iptables -t mangle -N QOSDOWN
iptables -t mangle -A FORWARD -s $NET -d ! $NET -p ! icmp -j QOSUP
iptables -t mangle -A FORWARD -d $NET -s ! $NET -p ! icmp -j QOSDOWN
iptables -t mangle -A QOSUP -j IMQ --todev 1
iptables -t mangle -A QOSDOWN -j IMQ --todev 0
iptables -t mangle -A QOSUP -p udp --dport 53 -j RETURN
iptables -t mangle -A QOSUP -m length --length :512 -j RETURN
iptables -t mangle -A QOSDOWN -p udp --sport 53 -j RETURN
iptables -t mangle -A QOSDOWN -m length --length :512 -j RETURN
tc qdisc del dev imq0 root
tc qdisc del dev imq1 root
tc qdisc add dev imq0 root handle 1: htb
tc qdisc add dev imq1 root handle 1: htb
tc class add dev imq0 parent 1: classid 1:1 htb rate $((DOWN))kbps
tc class add dev imq1 parent 1: classid 1:1 htb rate $((UP))kbps
i=$IPS;
while [ $i -le $IPE ]
do
tc class add dev imq1 parent 1:1 classid 1:$i htb rate $((UP/32))kbps ceil $((UP/16*4))kbps quantum 1500 prio 5
tc qdisc add dev imq1 parent 1:$i handle $i: sfq limit 64 perturb 10
tc filter add dev imq1 parent 1: protocol ip prio 100 handle $i fw classid 1:$i
tc class add dev imq0 parent 1:1 classid 1:$i htb rate $((DOWN/32))kbps ceil $((DOWN/16*14))kbps quantum 3001 mtu 3200 prio 5
tc qdisc add dev imq0 parent 1:$i handle $i: sfq perturb 10
tc filter add dev imq0 parent 1: protocol ip prio 100 handle $i fw classid 1:$i
iptables -t mangle -A QOSUP -s $UIP$i -j MARK --set-mark $i
iptables -t mangle -A QOSDOWN -d $UIP$i -j MARK --set-mark $i
i=`expr $i + 1`
done

有一定效果,比tomato自带的qos效果更好一点,之前迅雷下载会导致整个网络几乎处于不可用状态,用这个还行,起码网页还刷得出来,视频能播放,不过放十几秒缓冲个几秒也是蛋痛得紧。

说到底还是网络的速度实在是太慢了,只有0.5M上传,在路由后台可以看到迅雷在下载时几乎占满了上传,导致整个网络拥堵。qos有一定效果但它毕竟也不是万能的。

最后突然想起来,网件的原生固件也有带qos的,何不试试它的qos怎么样呢?说真的,这个WNR3500Lv1路由器几乎买来就是折腾的,几乎没有正经用过网件的原生固件。

网件的qos最终带来的惊喜,其qos默认配置不用改,开启它就好,真的挺强的,实测能限制住迅雷,网络繁忙时其下载速度会自动降下来,其也会自动限制住迅雷多开连接,在tomato下,迅雷能开启近2000个并发连接,在原生qos下,只能开启300多个。

最终在这个qos下,我用6M宽带做到了两台手机看超清网络视频,我在一台电脑看斗鱼超清直播,另一台电脑开迅雷下载。而视频全部不卡,迅雷下载被限制在150kb/s左右。

如果你也有和我一样的困扰,并且你手里也有网件的路由器的话,不妨试下网件原生固件(界面看起来真的好挫)的qos功能,没准它能给你惊喜呢~

最后,祝各位圣诞快乐哦~

Vultr黑五促销活动,充多少送多少,最多送100美元

Vultr是现今最大的虚拟服务器主机商之一,全球拥有15个数据中心,其中美国西部的Seattle西雅图、Silicon Valley硅谷、Los Angeles洛杉矶对中国大陆速度不错,联通用户更可选择Tokyo东京节点,直连中国,速度更快。
之前的常规促销为通过此链接注册,送20美元(需要绑定信用卡或最少充值5美元)。
美国的购物狂欢节“黑色星期五”到来之后,他家又推出一个优惠活动,新用户充多少送多少,最多100美元!活动介绍页面见这里,有意的朋友不要错过。这个活动和之前送20美元是可叠加的,不过送的100美元只有一年有效期并且送的Credit只能和实际金额对半使用。
注册使用Vultr的教程见这里。
博主一直有在使用Vultr家的VPS,目前还在其Los Angeles节点搭建了一个ss公共服务器,使用锐速加速,速度非常不错,欢迎大家点击上面的ss公共服务器试用。

宏碁ACER R7-371T-50V5拆解内部图片

R7-1.jpg
宏碁ACER R7-371T-50V5这笔记本买到现在两年多了,轻巧好用。这次因为死机后长按电源键也无法关闭电源,只好拆了之后手动拨掉电源线(这货电池内置无法直接拆卸),之前一前想看一下其内部构造怎么样,拆开后就拍下照片以便大家了解。

这笔记本特别好拆,卸下后壳所有螺丝后,轻轻从靠近屏幕那面掰开(我用的指甲),把整面别开一条缝之后整个后壳就可以拿下来了。

主板比较小个,电池也不大,才48WH,内部做工还是比较规整的。USB3加了金属屏蔽罩好评!双M.2(NGFF)硬盘接口好评!正面没有看到内存槽,估计是板载在背面了,意味着你无法扩展内存,这点差评!

下面看图吧~

R7-1.jpg
R7-2.jpg
R7-3.jpg
R7-4.jpg

新入手一个便宜的KVM架构VPS Virmach家的7.5刀年付机器

Virmach家上线于2014年,主打低价VPS,两年来口碑还算可以,上了7个数据中心,短期内也看不到跑路的可能。

购买这个机器主要为搭建一个免费ss公共服务器方便大家,顺便测试下其服务器速度怎么样,网上虽有很多评测,但看看就好,还是自己上手才能看出其好不好。| 放一个测速链接–chrome浏览器离线安装包(官方原版 50.8Mb),大家进行下载速度测试,可作为是否购买的参考依据,达400kb/s可流畅观看youtube 720P, 600kb/s以上可看youtube 1080P。

我买的是其10美元/年的128M KVM套餐,用了终身7.5折优惠码WHT25,实付7.5美元,这个价格买到KVM架构的VPS,即使其内存只有128MB,还是很超值的。

购买时没有仔细看,数据中心选择了默认的达拉斯,这是美国中部城市,地理位置摆在那,连接大陆的速度肯定不如更靠近西海岸的凤凰城(Phoenix),测试了下,ping值基本都得250ms以上,这个延迟比起西岸一众VPS200ms以下的延迟,真的不够看。

然后我就发TK要求帮我转移到凤凰城了,其回复很快,一两分钟就回复了(时间23:30,那时应该刚好是美国上班时间),答说要转移可以,要另外付3美元的转移费用。

我之前买过别家,不提DigitaloceanVultrLinode这些高大上的VPS,就是搬瓦工PZEA也提供免费更换数据中心的服务的,这家怎么这么抠?不怎么想付这个钱,于是就回复说我在别家买VPS都提供免费转移服务,怎么你们这个还要收费?我这个vps刚建立,也不需要保留数据,你直接删除这个在Phoenix重建一个,是否还要收费?

果然回复说如果是这样的话,那当然是免费的,请问是否确认删除所有数据并在Phoenix节点重建VPS,我回复YES后,等了十多个小时,总算转移过来了。

就我这段接触来看,其服务还算良好,回复速度也算OK,感觉还不错。

转移到Phoenix之后先看ping值
ping.png
可以看到基本都在220ms以下了,最低接近200ms,比达拉斯有所改善。丢包率10%,测试时是上网晚高峰,这丢包率还可以接受(毕竟不是高价的线路优化的VPS,手里有个走CN2线路的VPS,99元/月,其同期ping值如下图)
ping1.png
延迟和丢包率都好看,速度飞快,不过一个月的价钱够买Virmach128M KVM两年了。

买KVM架构就是为了可以安装锐速以优化连接速度,接下来就是安装锐速了。

锐速是什么?简单的说就是一个网络加速软件,只安装在服务端就能显著提高服务器访问速度,在远距离、丢包率高、网络拥堵的情况,提高访问速度&单线程连接带宽效果特别明显,可谓shadowsocks的最佳搭档!详情请点击下载锐速官方说明文件了解。

锐速官方于几个月前停止了其免费账户的申请,本来其最初曾承诺过20M以下带宽的锐速永久免费,那时网上很难找到破解版锐速,因为很多个人用户用免费版本也满足要求了,有需要的人再买商用版本(提供更高的加速带宽)。现在自食其言,不再提供免费版,导致很多黑客看不过去,纷纷放出破解安装包,以帮其兑现其永久免费的诺言!

这里面安装最简便的应该属91Yun的一键安装包了,只要发行版和内核适配,一条命令就能安装好锐速无限宽带版本。

经测试,Virmach的KVM系统模板Debian7 32bit能直接安装,详细如下图,大家可在购买时选择这个版本。
Debian7.png

VPS开通拿到root帐户信息后,登陆上去,先更改下系统源(其默认有一点问题,把CD源也加进去了,先把这个注释掉)

vi /etc/apt/sources.list #把开头为 deb cdrom: 在其行首加个#注释掉

之后运行apt-get update更新下,会看到如下错误

There is no public key available for the following key IDs: xxxxxxxxxxxxxxxx

可运行如下命令修复

aptitude install debian-keyring debian-archive-keyring

完成之后再运行apt-get update就不会再看到错误了。

系统搞好之后,使用91Yun的一键安装包安装锐速,一行命令就可以了

wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh

正常安装后你会看到如下信息
test3.jpg
此时锐速已经运行,我要测试下有开锐速和没开锐速的速度会相差多少。先把锐速停止,用如下命令

/serverspeeder/bin/serverSpeeder.sh stop

创建一个100MB的测试下载文件并用python开一个简单http服务器进行下载测速

mkdir ~/test && cd ~/test
dd if=/dev/zero of=100mb.bin count=100 bs=1M
python -m SimpleHTTPServer 8080

本地打开测试器访问VPSIP:8080下载100mb.bin测试看看
test2.jpg
速度基本在30-50kb/s之间波动(博主宽带为电信6M),很慢。
打开锐速

/serverspeeder/bin/serverSpeeder.sh start

再下载测试看看
test1.jpg

速度提高了10倍还不止,测试时家里的电视正在占用宽带,可以认为是跑满带宽了,效果非常明显!

接下来安装shadowsocks,用得是秋水逸冰shadowsocks-go一键包,命令如下

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go.sh
chmod +x shadowsocks-go.sh
./shadowsocks-go.sh 2>&1 | tee shadowsocks-go.log

ss install success.jpg

Done!这台服务器是用来供大家免费测试用的,现在已经很晚了,博主要睡觉了!等有时间再做一些shadowsocks公共节点必要的限制(防止别有用心的人拿来干坏事!)再共享出来,敬请期待!

昨天安装好之后太晚了,没有测试一下大家都喜闻乐见的Youtube 1080P的表现,今天补上^-^
youtube-1080p-test.png
测试时间10:50,不是上网高峰,结论:无压力,流畅得一B!今天晚高峰时再测试看看。

2016-6-12更新
选在晚高峰时测试了下,家里是6M电信宽带,看1080P还是比较吃力的,需要一定时间进行缓冲才能流畅观看。不过720P是没问题的,基本上即点即看!
test4.jpg
实际分享出去肯定要做一些限制的(限速限连接数&禁止BT),要不肯定没几天就让某些MJJ搞完500G流量,之后大家都没得玩「不高兴脸」

openwrt安装xware 迅雷远程下载

之前用的路由器是BRCM47XX的CPU,迅雷并没有适配这款CPU,想折腾xware也无从弄起。
最近买了个新玩具,newifi mini lenovo出品,型号为lenovo y1,CPU为mt7620a,128m ram, 16m flash,xware有对这个CPU进行适配,就把它安装进路由吧。迅雷虽然一直在吸血,名声不好,但其下载速度真不是aria2、transmission之类可匹敌的。

我现在用的系统为pandorabox,一个openwrt的分支,已得到官方的支持,其针对国内的的互联网环境做了很多本地化的工作,并且不同于官方的是,它也使用闭源驱动,所以他的无线性能比官方版的要好很多,推荐所有买了newifi mini的朋友都刷这个固件。
下载地址传送门在此(截止2016年5月30日的最新稳定版本)

newwifi mini不锁BL,刷机非常方便,插上电源时按住“reset”键,看到两个指示灯双闪后放开,设置本地IP为192.168.1.2,浏览器访问192.168.1.1,上传下载下来的固件刷机就可以了。注意耐心等待,刷机过程不能断电,需时约100s。
刷机完成后(指示灯恢复正常),把本地IP设回DHCP自动获取,访问路由器后台 192.168.1.1 (默认用户root 默认密码admin)
把移动硬盘或U盘插进USB口,ssh(没有客户端?传送门下载)连接上去
pandora默认设置了usb自动挂载,使用如下命令看下是否已经正确挂载

ls /mnt

正常的话应该会有sda1 sda2之类的输出,表示你硬盘的第一个分区已挂载到/mnt/sda1,第二个分区已挂载到/mnt/sda2
挂载正常后开始安装迅雷的luci-app-xunlei

opkg update && opkg install luci-app-xunlei

之后进入管理后台,定位到服务-迅雷远程下载,设置下迅雷的安装路径,如下图
xware-1.png
使用如下命令安装xware

cd /mnt/sda1 #同上图设置的路径要一致
mkdir xunlei
cd xunlei

以上命令建立迅雷的安装目录并进入目录,之后就是下载适合你路由器版本的xware了,去这个页面选择适合你的安装包,newifi mini选择的是Xware1.0.31_mipsel_32_uclibc.zip,直接在路由器上wget 下载下来

wget http://dl.lazyzhu.com/file/Thunder/Xware/1.0.31/Xware1.0.31_mipsel_32_uclibc.zip
opkg update && opkg install unzip
unzip Xware1.0.31_mipsel_32_uclibc.zip
./portal

正常输出如下
xware-2.png
在管理页面就可以看到激活码了,访问迅雷远程填入激活码就算完成了。

如果你刷的固件是不是pandorabox,而是openwrt原版之类的,其官方源就没有luci-app-xunlei可供下载,可在此地址下载,其标注”all”,应该是所有平台都适用的(无验证!)。

openwrt编译学习记录

openwrt是一个开源路由管理系统,基于linux,功能非常强大。这阵子利用闲暇时间学习,写下本文做个记录,方便自己后续查找,也方便他人学习。
本文不定时更新。
《1》 编译环境搭建
本来是找算在本地使用虚拟机编译的,但弄了几次都编译失败,查找原因是某些包的下载地址被墙,下载失败导致,这个问题可以通过连接VPN解决,但我的VPN实在太慢,我又是急性子,最终是直接在Vultr上新建个VPS,在上面编译的。
使用的系统为ubuntu14.04 64位
使用如下命令搭建环境

apt-get update
apt-get install git-core build-essential libssl-dev libncurses5-dev unzip -y
apt-get install subversion mercurial -y
apt-get install zlib1g-dev gawk gcc-multilib flex gettext -y

编译时最好先安装screen,新建一个screen进行编译,因为编译时间很长,直接ssh连接可能会因为网络不稳断掉导致编译进程被杀死。挂起screen方法为 ctrl+a再+d 。恢复的命令为 screen -r 。

apt-get install screen -y
screen -S openwrt

编译时不能使用root进行编译,我们新建一个普通用户

useradd glorystar -m
su glorystar
cd ~

通过git来下载OpenWrt bleeding edge(trunk版本)

git clone git://git.openwrt.org/openwrt.git

这将会创建’openwrt’这个目录。这个目录将会是OpenWrt的编译主目录。
下载并安装所有可用的”feeds”

cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a

运行下面的命令让OpenWrt编译系统检查你的编译环境中缺失的软件包

make defconfig
make prereq

使用如下命令打开编译菜单选择要编译的软件包

make menuconfig

make menuconfig.png
必须设置项为 Target System (我选择Broadcom BCM47xx/53xx (MIPS)) Subtarget (我选择MIPS 74K) 这个是根据你的路由器来选择的,选择完成后就可以开始编译了。
默认编译是不包含luCI管理界面的,如果你需要它,可以选择它编译进固件,路径为 LuCI —> Collections —> < * > luci
<>表示不会被编译,< M >表示会编译但不包含进固件,生成ipk以便后来安装, < * >表示会被编译进固件,使用空格键切换选择。

选择好后一点选exit退出,最后选yes保存。使用如下命令进行编译

make V=99

使用多核CPU进行编译用如下命令(会加快速度)

make V=99 -j

之后就是漫长的等待,编译好的固件会放在bin文件夹里。
注意点:新建虚拟机硬盘至少要30G以上,我使用20G的硬盘导致空间被占完,编译失败。
《一》到此结束,参考 OpenWrt编译系统 – 安装

买了个Sandisk闪迪酷铄64G闪存盘

用了好几年的忆捷(EAGET)16G U盘丢了,全金属挺好用的,丢了挺可惜的。但丢了也就丢了,只能安慰自己旧的不去新的不来!
EAGET-CM981.png
买这个应该是在四五年前吧,京东买的,再去京东看了下,这货居然还在售!价格降了一半左右,记得我当时是五六十块买的。
这货虽然好用,但再买的话我不会再买这个,毕竟是好多年前的产品了,性能有点跟不上了。
一番查看,相中闪迪酷铄,在一众64G USB3的U盘中,性能更优而价格相差无几。
前天下午下单,当天京东就发出来了,昨天晚上送到公司,今天上班拿到手。
sandisk1.jpg
sandisk2.jpg
sandisk3.jpg
这个U盘比想象中更小巧一点,做工看起来比较粗糙,甚至感觉不如好几年前的EAGET,下载了CDM测试了下,基本达到了其标识的性能,总体还可以吧。
CMD.png
等有时间,再量产此U盘吧,就先到这吧。

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
dropbox-2.jpg
上传还需要用到一个第三方上传脚本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
dropbox-4.png

继续阅读