Linux VPS备份网站数据到Dropbox

之前本来想用FTP来进行备份数据的,但是都没有什么长期的FTP服务器,于是就想了用网盘来备份网站的数据。

国外的网盘推荐就是使用Dropbox,信誉不错的,做了基本任务就2G多的空间,可以自己刷好友来扩大容量!

于是乎,在网上搜了搜,转载过来和大家分享!

 

准备工作

如果没有Dropbox的用户可以使用后面的推荐码进行注册,http://db.tt/yV9WSxh ,不遮遮掩掩,就是推广链接!你好我好嘛~

注册完后,前往Apps点击Create an app,需要验证邮箱(不必多说了吧),填好基本信息,在Access的选项中选择Full Dropbox

Snip20130129_1

如上图所示!

第二步就是下载Dropbox-Uploader,下载地址:https://github.com/andreafabrizi/Dropbox-Uploader

下载之后,上传至/root/目录下,不建议改名字!

 

开始配置

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

这里他会让你输入App key以及App secret,在刚刚我们创造的APP那里有!

然后他会询问你是App folder 还是Full Dropbox,按照刚刚我们上面的说明,按f,然后回车!

然后他会给出一个地址,自己复制下来用IE打开,其实就是授权给这个APP!

授权好了,回到SSH上,按下回车。

如果不出意外的话,我们就配置好了,可以用下面的代码测试!

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

回显DONE就说明配置成功了!

 

关键代码

#!/bin/bash
DROPBOX_DIR="/backup/$(date +%Y-%m-%d)" #Dropbox上的备份目录
MYSQL_USER="root" #数据库帐号
MYSQL_PASS="123456" #数据库密码
YM_DATA=/etc/nginx #nginx配置目录
BACK_DATA=/home/backup #本地备份文件存放目录,手动创建
DATA=/home/www #网站数据存放目录

#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
YMName=YM_$(date +%Y%m%d).tar.gz
OldData=Data_$(date -d -6day +"%Y%m%d").tar.gz
OldWeb=Web_$(date -d -6day +"%Y%m%d").tar.gz
OldYM=YM_$(date -d -6day +"%Y%m%d").tar.gz

#定义Dropbox旧数据的名字(30天前)
Old_DROPBOX_DIR=/backup/$(date -d -30day +%Y-%m-%d) #Dropbox上的备份目录

#删除本地6天前的数据
rm -rf $BACK_DATA/$OldData $BACK_DATA/$OldWeb $BACK_DATA/$OldYM

cd $BACK_DATA

#使用命令导出SQL数据库,并且按数据库分个压缩
for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
    (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
#压缩数据库文件合并为一个压缩文件
tar zcf $BACK_DATA/$DataBakName $BACK_DATA/*.sql.gz
rm -rf $BACK_DATA/*.sql.gz

#压缩网站数据
cd $DATA
tar zcf $BACK_DATA/$WebBakName ./*

#压缩域名配置数据
cd $YM_DATA
tar zcf $BACK_DATA/$YMName ./*

cd ~
#开始上传
./dropbox_uploader.sh upload $BACK_DATA/$DataBakName $DROPBOX_DIR/$DataBakName
./dropbox_uploader.sh upload $BACK_DATA/$WebBakName $DROPBOX_DIR/$WebBakName
./dropbox_uploader.sh upload $BACK_DATA/$YMName $DROPBOX_DIR/$YMName

#开始删除远程30天前的文件
./dropbox_uploader.sh delete $Old_DROPBOX_DIR/

echo -e "Thank you! all down"

按照说明自己配置一下,如果需要定时备份的请麻烦自己设置!

还需要赋予脚本运行的权限

chmod +x backup.sh #赋予权限

注意:/home/backup/这个目录需要自己创建,不然会报错!

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

./backup.sh

最后

没有最后了,当你做完

你也可以按照自己的需要设置,不需要的功能自己#了他就可以了!

祝你一路顺利!我的vps就是一路顺利过来了~

 

使用iPhone配置实用工具导入自签根证书

由于近来一系列敏感事件的影响,XXX发威的厉害,相信不少人都有过自建的tXXXXXr api被墙的经历。私有的tXXXXXr api要是未公开的话一般是死在关键词拦截上,由于HTTP协议的不安全,导致XXX能轻松过滤来往的请求,目前比较好的方法是使用SSL来加密来往传送的数据。今天尝试了下,在Android下使用Twidroyd可以忽略不受信任的自签证书,但是在iPod Touch上就不行,后来发现可以用iPhone Configuration Utility来添加描述文件,在描述文件中可以进行授权证书等操作,由于网上相关的介绍比较少,故写一篇来说明下。

iPhone Configuration Utility
官方下载地址:http://support.apple.com/kb/DL926
中关村在线链接:http://driver.zol.com.cn/link/43/420407.shtml

官方介绍:
iPhone Configuration Utility (iPCU) lets you easily create, maintain, encrypt, and install configuration profiles, track and install provisioning profiles and authorized applications, and capture device information including console logs. Recommended for those managing devices running iOS 4.0 or later.
Configuration profiles are XML files that contain device security policies, VPN configuration information, Wi-Fi settings, APN settings, Exchange account settings, mail settings, and certificates that permit iPhone and iPod touch to work with your enterprise systems.
iPCU version 3.1 adds support for new Mobile Device Management (MDM) features introduced in iOS 4 and enables wireless delivery of configuration profiles. It also includes support for Cisco AnyConnect and Juniper Networks SSL VPN clients, CardDAV, multiple Exchange accounts and SAN support using Simple Certificate Enrollment Protocol (SCEP).

使用方法:
0.先在当前系统上导入自签证书并安装iPhone配置实用工具
1.创建描述文件:左侧面板点击“配置描述文件”->点击上方“新建”->在“通用”里设置好名称和标识符->在“凭证”里点击“配置”->选择自签的证书
2.安装描述文件到设备:将iPhone/iPod Touch连接到电脑->左侧面板点击“设备”下的对应设备->选择“配置描述文件”标签页->安装刚刚配置好的描述文件

同理,一些需要客户端验证的页面,wifi验证,企业内的ssl站点都可以如法炮制。

top命令详解

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

下面详细介绍它的使用方法。

top - 01:06:48 up  1:22,  1 user,  load average:    0.06, 0.60,  0.48
Tasks:  29 total,   1 running,  28 sleeping,    0 stopped,   0  zombie
        Cpu(s):  0.3% us,  1.0% sy,  0.0% ni, 98.7%     id,  0.0% wa,  0.0%  hi,  0.0% si
        Mem:    191272k total,   173656k used,      17616k free,    22052k  buffers
        Swap:   192772k total,        0k used,      192772k free,   123988k  cached

        PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM     TIME+  COMMAND
        1379 root      16   0  7976 2456 1980 S  0.7  1.3   0:11.03  sshd
        14704 root      16   0  2128  980  796 R  0.7  0.5   0:02.72 top
        1 root      16   0  1992  632  544 S  0.0  0.3   0:00.90 init
        2 root       34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
        3 root       RT   0     0    0    0 S  0.0  0.0   0:00.00  watchdog/0

统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

01:06:48 当前时间 up 1:22 系统运行时间,格式为时:分 1 user 当前登录用户数 load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

Tasks: 29 total 进程总数
1 running   正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped   停止的进程数
0 zombie    僵尸进程数
Cpu(s): 0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id    空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi 
0.0% si

最后两行为内存信息。内容如下:

Mem: 191272k total  物理内存总量
173656k used    使用的物理内存总量
17616k free 空闲内存总量
22052k buffers  用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free    空闲交换区总量
123988k cached  缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号  列名  含义
a   PID 进程id
b   PPID    父进程id
c   RUSER   Real user name
d   UID 进程所有者的用户id
e   USER    进程所有者的用户名
f   GROUP   进程所有者的组名
g   TTY 启动进程的终端名。不是从终端启动的进程则显示为 
h   PR  优先级
i   NI  nice值。负值表示高优先级,正值表示低优先级
j   P   最后使用的CPU,仅在多CPU环境下有意义
k   %CPU    上次更新到现在的CPU时间占用百分比
l   TIME    进程使用的CPU时间总计,单位秒
m   TIME+   进程使用的CPU时间总计,单位1/100秒
n   %MEM    进程使用的物理内存百分比
o   VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p   SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
q   RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE +DATA
r   CODE    可执行代码占用的物理内存大小,单位kb
s   DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t   SHR 共享内存大小,单位kb
u   nFLT    页面错误次数
v   nDRT    最后一次写入到现在,被修改过的页面数。
w   S   进程状态。
        D=不可中断的睡眠状态
        R=运行
        S=睡眠
        T=跟踪/停止
        Z=僵尸进程
x   COMMAND 命令名/命令行
y   WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
z   Flags   任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

命令使用

1.  工具(命令)名称
top
2.工具(命令)作用
显示系统当前的进程和其他状况;top是一个动态显示过程,即可以通过   用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直   到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理  ·器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按 CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. 
3.环境设置
在Linux下使用。
4.使用方法
4.1使用格式
top [-] [d] [p] [q] [c] [C] [S]    [n] 
4.2参数说明
d  指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p  通过指定监控进程ID来仅仅监控某个进程的状态。
q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s  使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i  使top不显示任何闲置或者僵死进程。
c  显示整个命令行而不只是显示命令名

4.3其他

下面介绍在top命令执行过程中可以使用的一些交互命令。

从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。

Ctrl+L 擦除并且重写屏幕。

h或者?  显示帮助画面,给出一些简短的命令总结说明。

k  终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。

一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。

i 忽略闲置和僵死进程。这是一个开关式命令。
q  退出程序。
r  重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S 切换到累计模式。
s  改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5  s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F 从当前显示中添加或者删除项目。
o或者O  改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t  切换显示进程和CPU状态信息。
c  切换显示命令名称和完整命令行。
M  根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W  将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

 

Mac Adobe CS6 完美破解激活(免替换文件/可更新)详细图文教程

最近一直在折腾 Mac,就连在 Windows 下闭着眼就能安装的 Adobe 系列,都显得有些陌生。尤其是破解激活的过程。虽然也有 Windows 下最常见的 amtlib 替换法,但好友 Digidea 告诉我那样其实不太安全。于是索性混了几天各种论坛,学会了一种通过序列号和激活码来激活 Adobe CS6 系列的方式。下面就以在 Mac 下安装 Photoshop CS6 为例,把过程详细的写下来,以备后用。

准备工作:

1,各种安装包,不要大师版,而是独立安装包。最好是官方的,网上很多,搜一下;
2,准备独立安装包的序列号(cd-key),在文章最后我会提供;
3,下载 Adobe CS6 大师版注册机,等会用它来生成激活码(点击下载,含 Windows 版和 Mac 版);
4,如果是 Mac 下建议再准备一个方便修改 hosts 的工具“Hosts 1.1”(点击下载);
5,断网。

第一步:检查现有的 hosts 文件:

如果你之前干过屏蔽 Adobe 的坏事,那么现在检查一下 hosts 文件中是否包含以下两行,有的话先注释或删掉,因为它会导致你等会输入 CD-KEY 的时候总是无法通过:

127.0.0.1 lmlicenses.wip4.adobe.com
127.0.0.1 lm.licenses.adobe.com

第二步:安装 Adobe Photoshop CS6:

启动 Adobe Photoshop CS6 的独立安装程序,选择安装 Adobe Photoshop CS6,如图:

adobe-cs6-setup-crack-1

安装过程中选择“安装(我有序列号)”,然后输入序列号,如图:

adobe-cs6-setup-crack-2

点击下一步,然后会提示[请连接到 Internet,然后重试],这时要先点击“稍后连接”。然后下一步,直到安装完成;

第三步:激活 Adobe Photoshop CS6:

打开已经安装完成的 Adobe Photoshop CS6,切记保持断网。会提示[序列号验证]的时候点击“连接 Internet 时是否出现问题?”,如图:

adobe-cs6-setup-crack-3

然后根据提示选择“脱机激活”,接着选择“生成请求代码”,再来到下一步,会给出一段请求代码,如图:

adobe-cs6-setup-crack-4

把请求代码复制起来,不要关掉。然后打开刚刚准备的注册机,在 Serial 填入刚才安装 Photoshop 时填写的 cd-key,并且在 Request Code 填入刚才复制的请求代码。点击“Gen. activation”生产一个 Activation code,如图:

adobe-cs6-setup-crack-5

把得到 Activation code 复制起来,回到 Adobe 激活界面,把算出来的 Activation code 粘贴到[响应代码]后点击“激活”,接着就会提示“脱机激活完成”并告知你已成功激活!至此,我们已经成功激活 Photoshop CS6 了!

第四步:修改 hosts 文件:

为了避免 Adobe 过后会检查,我们还要再修改 hosts 文件,加入下面四条纪录:

127.0.0.1 lmlicenses.wip4.adobe.com
127.0.0.1 lm.licenses.adobe.com
127.0.0.1 activate.adobe.com
127.0.0.1 practivate.adobe.com

最后:检查更新:

现在,让我们很低调很低调的检查一下更新,会发现已经可以更新了,如图:

adobe-cs6-setup-crack-6

adobe-cs6-setup-crack-7

附:Adobe CS6 独立安装版本序列号(CD-KEY):

Adobe Photoshop CS6: 1330-1887-7489-4700-7429-5959 或 1330-1071-1536-4954-3005-2944;
Adobe Illustrator CS6: 1034-1199-6358-6414-2734-2457;
Adobe Fireworks CS6: 1193-1629-6196-3576-7233-2107;
Adobe Dreamweaver CS6: 1192-1439-5431-5970-9189-4949;
Adobe InDesign CS6: 1037-1152-9294-1135-7907-7102;
Adobe InCopy CS6: 1036-1125-4514-7088-7717-8283;
Adobe Flash Professional: 1302-1609-4472-2505-4933-2084;
Adobe Audition CS6: 1137-1633-8198-8315-0942-5899;
Adobe AfterEffects CS6: 1023-1897-8153-1746-6817-1885;
Adobe PremierePro CS6: 1132-1248-3910-1856-5842-0927;

Win8离线安装.NET3.5

大家都知道win8自带.net 4 在.net3.5下开发的软件无法在win8下运行,会提示需要安装.net3.5联网更新又太麻烦~~可以不可以离线安装呢?

其实是可以的,我们只需一个命令就可以实现离线安装~~ 前提我们要有win8的光盘镜像,直接打开win8镜像你会发现镜像会默认被加载为光驱了。

然后我们win+x 选择命令提示符(管理员)输入以下代码~

dism.exe /online /enable-feature /featurename:NetFX3 /Source:F:\sources\sxs

Source:F 是指对应的光驱盘符,如果盘符不对改下即可~

然后你在命令提示符里看到一个进度条,默认情况下是90.8,等它自动完成到100%就说明安装完成~

祝大家好运~

Kloxo面板后台SSL证书替换

最近在自己的服务器上搭建Kloxo面板造福大众,然后遇到了一点问题,就是Kloxo面板的后台7777端口访问的时候总是会提示证书是由不受信任的颁发机构颁发。做完一个重度强迫症患者(误),这是绝对不能忍的!

但是找来找去一直没有发现相关的文章。看了大家对不常用的东西一点都不在乎= =|||于是只好自己动手。

首先在你的命令行中输入:

ps -aux|grep kloxo.httpd

然后你会看到类似这样的显示:

lxlabs   16186  0.0  0.2   7256  3544 ?        S    04:07   0:01 /usr/local/lxlabs/ext/lxlighttpd/sbin/kloxo.httpd -f /usr/local/lxlabs/kloxo/file/lighttpd.conf
root     24325  0.0  0.0   3188   796 pts/0    S+   17:26   0:00 grep kloxo.httpd

其中/usr/local/lxlabs/kloxo/file/lighttpd.conf就是Kloxo控制面板的Lighttpd配置文件。(找到它真不容易啊。。。在Apache那绕了一个小时的弯,突然灵光一闪看了下进程列表然后哭了。。。这货居然用的是独立的一套Lighttpd。。。)

打开拉到最下方,能看到:

$SERVER["socket"] == ":7777" {
        server.document-root = "/usr/local/lxlabs/kloxo/httpdocs/"
        ssl.engine = "enable"
        ssl.pemfile             = "/usr/local/lxlabs/kloxo/etc/program.pem"
        ssl.ca-file             = "/usr/local/lxlabs/kloxo/etc/program.ca"
        ssl.use-sslv2 = "disable"
 }

其中ssl.pemfile和ssl.ca-file就是我们需要修改的内容所指的文件就是我们要修改的内容。这里指向的是Kloxo自带的一个证书文件。现在我们修改这两项,将其指定到我们自己的证书文件。注意,ssl.pemfile我之所以没用ssl.crt是因为Lighttpd需要的证书文件比较特殊,是把Key私钥直接附加在crt证书后面生成的。为了不破坏原式证书,我起了一个不一样的名字来区分。 现在我们找到这两个program.pem和program.ca并将其替换成我们自己的证书。

接下来以StartSSL的免费SSL证书为例,说明这两个文件如何生成。

首先,我们从StartSSL拿到的证书文件包括:

ca.pem
ssl.crt
ssl.key
sub.class1.server.ca.pem

四个文件。其中ssl.key是预先解密好的私钥文件。当然不解密应该也可以,但是每次启动服务的时候都需要输入私钥密码,非常麻烦。

首先我们生成program.pem:

cat ssl.crt ssl.key > program.pem

这个ssl_key.crt就是我们最终需要的文件,即ssl.pemfile

然后生成ca-certs.crt:

cat sub.class1.server.ca.pem ca.pem > program.ca

此时生成的文件就是我们需要的文件。

然后将两个文件替换掉原来的文件,把Lighttpd重启一下,再访问就能看到效果了。

Xen VPS 手动安装Ubuntu 12.04.01 LTS 小记

最近在某网站买了Xen的VPS,由于有些原因需要将系统从Win换成Ubuntu。但是由于没有提供现成的安装模板,所以只好联系了管理员帮我挂了一个镜像自己装。

在安装过程中出现了一个小问题:网络始终无法设置。如果先装好系统再用ifconfig想启用网卡的话,会出现

SIOCSIFFAGS:Cannot assign request address

的错误。网上搜了一下也没有看到我这个情况可用的解法,只好自己尝试。

经过试验,发现进入Xen的VPS控制面板,将虚拟网卡从Realtek8139改为IntelE1000,并将网络仿真器从ioemu更改为netfront之后,该问题得到解决。

然后由于管理员挂载的是Alternate版本的镜像,所以安装的时候把桌面环境神马的都装上了。上网找了一下找到了删除桌面环境的shell语句,记录一下。

sudo apt-get -y –auto-remove purge unity
sudo apt-get -y –auto-remove purge unity-commonp
sudo apt-get -y –auto-remove purge unity-lens*
sudo apt-get -y –auto-remove purge unity-services
sudo apt-get -y –auto-remove purge unity-asset-pool