使用Dropbox备份网站附件和数据库

1.登录Dropbox后,打开Apps页面,点击 Create App 按钮,创建一个App

2.登录vps获取最新的上传dropbox脚本

wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh

3.配置

chmod +x dropbox_uploader.sh #赋予权限
./dropbox_uploader.sh info #开始绑定APP

4.然后根据提示输入Access token:

然后输入下面命令测试,显示Done就没问题了

./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old

想重新配置可以把/root目录下的隐藏的.dropbox_uploader文件删除再配置。

5.然后我们创建自己的备份脚本

vim backup.sh

输入下面内容

#!/bin/bash
SCRIPT_DIR="/root" #这个改成你存放刚刚下载下来的dropbox_uploader.sh的文件夹位置
DROPBOX_DIR="/backup" #这个改成你的备份文件想要放在Dropbox下面的文件夹名称,如果不存在,脚本会自动创建
BACKUP_SRC="/home/wwwroot /usr/local/nginx/conf" #这个是你想要备份的本地VPS上的文件,不同的目录用空格分开
BACKUP_DST="/tmp" #这个是你暂时存放备份压缩文件的地方,一般用/tmp即可
MYSQL_SERVER="localhost" #这个是你mysql服务器的地址,一般填这个本地地址即可
MYSQL_USER="mysqluser" #这个是你mysql的用户名名称,比如root或admin之类的
MYSQL_PASS="password" #这个是你mysql用户的密码
# 下面的一般不用改了
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tar.gz"
# 备份mysql数据库并和其它备份文件一起压缩成一个文件
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
echo "数据库备份完成,打包网站数据中..."
tar cfzP "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
echo "所有数据打包完成,准备上传..."
# 用脚本上传到dropbox
$SCRIPT_DIR/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tar.gz"
if [ $? -eq 0 ];then
     echo "上传完成"
else
     echo "上传失败,重新尝试"
fi
# 删除本地的临时文件
rm -f "$NOW-Databases.sql" "$DESTFILE"

然后改为可执行文件:

chmod +x backup.sh #赋予权限

运行的时候就输入下面的代码即可:

./backup.sh

然后通过 cron 来设置定时运行脚本:

crontab -e

加入以下代码,:wq 保存

0 5 * * * /bin/bash /root/backup.sh

由于vps和dropbox都在国外,亲测备份特别快,国内的话可以考虑用七牛云。
关于那备份脚本的更多用法参考项目github主页。

全文转载自:https://blog.fazero.me/2016/09/10/backup-vps-to-dropbox/

5美元VPS横评:Linode vs. DigitalOcean vs. Amazon Lightsail vs. Vultr

其他三家都经常听说,lightsail倒是第一次看到,我对amazon的认识还停留在aws的ec2时代。四家分别是:

Linode DigitalOcean Amazon Lightsail Vultr

以下是转载并简单翻译,英文原文地址:在此

linode在推出10刀套餐之后终于推出了5刀套餐,由此可以与其他三家直接竞争。

价格与套餐

Linode DigitalOcean Lightsail Vultr
Memory 1GB 512MB 512MB 768MB
Processor 1 Core 1 Core 1 Core 1 Core
Storage 20GB SSD 20GB SSD 20GB SSD 15GB SSD
Transfer 1TB 1TB 1TB 1TB
Overage $0.02/GB $0.02/GB $0.09/GB $0.02+/GB
Network In 40Gbps 1Gbps ??? ???
Network Out 1000Mbps 1Gbps ??? ???
Price $5/month $5/month $5/month $5/month
$0.0075/hour $0.007/hour $0.007/hour $0.007/hour

继续阅读5美元VPS横评:Linode vs. DigitalOcean vs. Amazon Lightsail vs. Vultr

网站搬迁到Linode Fremont

由于之前四处撒币,在很多不同的VPS供应商处充值很多,所以基本上这两年都是在努力进行消耗。去年6月至今已经消耗完DO的80美元,差不多浪费完Hostigation的70美元,目前只在ramnode还有50多美元,然后就是linode的300多刀。基本上后面可以稳定在linode。然后重新熟悉了一下网站搬家技巧,敲了很多遍tar和mysql,希望不要有什么差错。

DO的半年其实还可以,大问题没有,连接速度勉强满足要求,偶尔系统会出现问题需要重启。之所以没选择Linode东京机房是原来的东京1已经没货,两个月前新上了东京2,测试了一下下载速度不如Fremont靠谱,Fremont这个节点口碑还是蛮好的。

绝对不要在国内注册域名

有个客户之前在国内的35.com注册了个域名,出于价格和管理方面的考虑,打算转移到另一个国外的注域名注册商,这在godaddy之流只是点击几下鼠标的事情,在这里却难如登天。

首先转出要付款。收费140元,包含一年域名续费,这已经属于乱收费,但是处于息事宁人的态度,给吧。

付款之后发现完全没有任何转移码和邮件提醒,于是联系客服qq,转来转去已经是第二天。

要求提供手写签名的文件并快递,不接受到付。行吧,国内还能怎么样,给吧。

继续阅读绝对不要在国内注册域名

MySQL字符集LATIN1转UTF8

导出表结构

mysqldump -uroot -p --default-character-set=utf8 -d databasename > db.sql
修改db.sql内的字符集设置(notepad++编辑)
ENGINE=MyISAM DEFAULT CHARSET=latin1;
修改为
ENGINE=MyISAM DEFAULT CHARSET=utf8;
导出数据
mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename >data.sql
修改data.sql
set names latin1;
改为
set names utf8;//使得客户端和链接使用utf8格式,使得数据以utf8的形式存储

创建数据库

create database databasename default charset utf8;

导入表结构

mysql -uroot -p databasename < db.sql

导入表数据

mysql -uroot -p databasename < data.sql

备注:原理流程
1、导出表结构,把latin1结构替换成utf8
2、用原有的latin1导出数据,并且将set names替换成utf8格式
3、创建数据库,默认字符集改成utf8
4、导入表结构、数据