Blog

  • linux工具之chkconfig

    linux的启动级别:

    #   0 - halt (Do NOT set initdefault to this) 
    #   1 - Single user mode 
    #   2 - Multiuser, without NFS (The same as 3, if you do not have networking) 
    #   3 - Full multiuser mode 
    #   4 - unused 
    #   5 - X11 
    #   6 - reboot (Do NOT set initdefault to this)
    我们平时用的服务器就是3了,桌面就用5。
    chkconfig可以更改某服务的启动级别,在ubuntu默认是没有的,需要手动安装一下。
    查看所有开机启动的服务
    chkconfig --list
    设置iptables在2345级别开机启动
    chkconfig --level 2345 iptables on
    增加httpd服务
    chkconfig --add httpd
    删除httpd服务
     chkconfig --del httpd
  • 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,比他们的食堂好吃,比他们的图书馆齐全,比他们的体育发展的好,美女比他们的又多又好看。还在学校的同学们,好好享受吧。