Blog

  • mysql数据库空间用满时,巧用软链接转移

    参考:http://www.webhostingtalk.com/showthread.php?t=1086919

    对于一些做SEO的人来说,/var/lib/mysql 和 /var/www 是两个占用空间的大户,下面以数据库为例,将/var/lib/mysql下的数据库移动到较大的/home下,并使用软链接将/home/mysql 链接到/var/lib/mysql,实现充分利用空间的目的。

    在这些网站都不在使用的时候,停用mysql,apache

    /etc/init.d/mysqld stop
    /etc/init.d/httpd stop

    使用rsync完整的将数据拷贝(-a archive mode归档模式 -v verbos显示详细 )

    rsync -av /var/lib/mysql /home/

    这个过程根据数据量的不同时间不同,数据很大的话建议使用screen

    接下来看一下大小,如果以上命令都完全执行完的话,是不会出现什么问题的

    du -sh /var/lib/mysql
    du -sh /home/mysql

    将旧的/var/lib/mysql移走,随便移到什么地方,实再不需要删掉也行

    mv /var/lib/mysql /var/lib/mysql-bak

    创建软链接

    ln -s /home/mysql /var/lib/mysql

    之后一定要再次确认上面的软链接链接到对的地方,如果不正确mysql一启动就麻烦了。

     

    #######ubuntu用户注意 begin#######

    如果使用ubuntu下apt-get安装的mysql版本,还需如下操作

    vim /etc/apparmor.d/usr.sbin.mysqld

    将如下两行注释

    /var/lib/mysql/ r,
    /var/lib/mysql/** rwk,

    变更为(可能是因为apparmor不支持软链接)

    /home/mysql/ r,
    /home/mysql/** rwk,

    重启apparmor

    /etc/init.d/apparmor restart

    #######ubuntu用户注意 end#######

     

    之后启动mysql,apache

    /etc/init.d/mysqld start
    /etc/init.d/httpd start

    这样以后所有的mysql数据的位置就在/home/mysql里了。

    另一种解决方案:不用软链接而直接将数据库转移到目录/mnt/sx_disk

    rsync -av /var/lib/mysql /mnt/sx_disk/

    之后在/etc/my.cnf中,将[mysqld]中的如下参数改为

    [mysqld]
    datadir=/mnt/sx_disk/mysql
    socket=/mnt/sx_disk/mysql/mysql.sock

    只这样还不行,会出现

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    另外需添加

    [client]
    port=3306
    socket=/mnt/sx_disk/mysql/mysql.sock

    这样数据库就存为了新的位置/mnt/sx_disk目录中。

    如果同是ubuntu下mysql的话,也需要按上面的方式修改/etc/apparmor.d/usr.sbin.mysqld

  • linux工具之logwatch

    logwatch的下载地址:

    http://sourceforge.net/projects/logwatch

    Logwatch是一个可定制的日志分析系统。使用Perl语言编写。

    Logwatch通过系统的日志分析,并创建一个报告,分析您所指定的区域。 Logwatch易于管理,在大多数系统上都可以使用。

    ubuntu安装:

    sudo apt-get install logwatch

    用法:

    Usage: /usr/sbin/logwatch [–detail <level>] [–logfile <name>] [–output <output_type>]
    [–format <format_type>] [–encode <enconding>] [–numeric]
    [–mailto <addr>] [–archives] [–range <range>] [–debug <level>]
    [–filename <filename>] [–help|–usage] [–version] [–service <name>]
    [–hostformat <host_format type>] [–hostlimit <host1,host2>] [–html_wrap <num_characters>]

    用法举例:

    如不加–range,则默认是昨天到今天的区间

    0.查看帮助信息/查看时间区间的用法

    # logwatch --help
    # logwatch --range Help

    1.查看日志,显示比较全的信息

    # logwatch

    2.查看某服务sshd日志

    # logwatch --service sshd

    3.查看近三天的cron日志

    logwatch --service cron --range '-3 days'

    4.查看sshd的日志,并发送邮件(需配置好邮件服务器,可以对外发邮件)

    # logwatch --service sshd --mailto [email protected]
  • linux工具之iftop/bmon

    ubuntu下安装 apt-get install iftop

    此命令只有root才可以运行

    iftop -i eth0

    界面说明:

    TX发送的速度
    RX收到的速度
    Cumm:总流量
    peak:流量峰值
    rates:2s 10s 40s 的平均流量

     

    -B 以Bytes为单位显示流量(默认是bits),如:# iftop -B
    -n 使host信息默认直接都显示IP,如:# iftop -n
    -N 使端口信息默认直接都显示端口号,如: # iftop -N
    -F 显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0

    bmon

    按g显示动态的流量随时间变化

    按d显示详细的数据

  • wordpress备份策略

    参考:http://codex.wordpress.org/WordPress_Backups

    备份的方式

    我自己的方式是

    #!/bin/bash
    DBNAME=wordpress
    DBPASS=root
    DBUSER=root
    #Keep the " around your address
    EMAIL="[email protected]"
    #Change the 'wp_' to match your table_prefix in the database
    mysqldump --opt -u $DBUSER -p$DBPASS $DBNAME > backup.sql
    gzip backup.sql
    DATE=`date +%Y%m%d` ; mv backup.sql.gz $DBNAME-backup-$DATE.sql.gz
    echo 'Blog Name: Your mySQL Backup is attached' | /usr/bin/mutt $EMAIL -a $DBNAME-backup-$DATE.sql.gz -s "MySQL Backup"
    rm $DBNAME-backup-$DATE.sql.gz

    记录:通过上述方法在2012年10月31日yardvps挂掉换linode,恢复成功。

  • 我真无耻,毕业了还蹭人家的学校

    毕业两个月了,在南京建邺这边住

    旁边有一个江苏城市职业学院

    9月开学季,字幕上打着“广大欢迎师生返校”

    我无耻起来

    下班后在人家的学校吃饭,在人家的学校看书,在人家的学校跑步,在人家的学校看美女

    这才回想起,自己的CCZU,比他们的食堂好吃,比他们的图书馆齐全,比他们的体育发展的好,美女比他们的又多又好看。还在学校的同学们,好好享受吧。

  • wordpress在nginx下的漂亮链接

    nginx配置文件,在server中添加如下规则

    location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
     }

    在wordpress固定链接设置为

    /%year%/%monthnum%/%postname%.html

    apache下的固定链接参考:

    http://codex.wordpress.org/Using_Permalinks