Blog

  • CentOS6.2的iptables基础

    来自于

    Linux iptables Pocket Reference

    CentOS的iptables规则保存在/etc/sysconfig/iptables

    查看iptables的启动级别

    [root@localhost ~]# chkconfig --list iptables
    iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

    调整启动级别可以用如下命令

    chkconfig --levels 345 iptables on

    启动iptables

    service iptables start

    停用iptables

    service iptables stop

    一些伪文件:(存在于/proc)

    /etc/sysctl.conf在启动里创建了/proc/sys,如配置pptp-vpn的时候,在sysctl.conf里加入net.ipv4.ip_forward=1开机后,查看/proc/sys/net/ipv4/ip_forward,就会发现变为1.

    /proc/sys/net/ipv4/ip_conntrack_max,当出现“ip_conntrack: table full, dropping packet”错误时,你需要在/etc/sysctl.conf加值。

    用uname -r可查看内核版本信息

    uname -a查看全部信息,具体见(manpage of uname).

    几个状态的说明

    ESTABLISHED 已经监测到双向发送的包

    INVALID 什么都没有

    NEW 有新的连接或监测到一部分

    RELATED 有新的连接,且新连接是基于已有连接

    连接监测主要是连接的前三个比特。

    conntrack 参数,(–ststatus选项)有

    ASSURED TCP连接,说明TCP已经连接,UDP雷同

    EXPECTED 说明连接是已知的

    SEEN_REPLY 说明已经监测到双向发送的包,参见ESTABLISHED

    内核统计

    内核会自动统计通过iptables的每一条规则的包和字节。

    例如,eth0代表内网,eth1代表外网

    iptables -A FORWARD -i eth1
    iptables -A FORWARD -o eth1
    iptables -A INPUT -i eth1
    iptables -A OUTPUT -o eth1

    iptables记录了与外网的交换的包和流量数,通过iptables -L -v查看 INPUT和OUTPUT的包和流量如下

    Chain INPUT (policy ACCEPT 27 packets, 1728 bytes)
    pkts bytes target prot opt in out source destination
    3 192 all -- eth1 any anywhere anywhere
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination
    0 0 all -- eth1 any anywhere anywhere
    0 0 all -- any eth1 anywhere anywhere
    Chain OUTPUT (policy ACCEPT 21 packets, 2744 bytes)
    pkts bytes target prot opt in out source destination
    3 192 all -- any eth1 anywhere anywhere

    如查想指定哪些包通过NAT,把包-j(jump)到特殊目标ACCEPT.要早于其他NAT规则

    iptables -t nat -i eth1 ... -j ACCEPT

     

  • Centos6.2 x64 安装lamp环境

    参见:

    http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-centos-6.2-lamp

    1、安装mysql:

    yum install mysql mysql-server

    设置开机启动,启动mysql

    chkconfig --levels 235 mysqld on
    /etc/init.d/mysqld start

    此时的mysql是没有root密码的,运行下面向导:

    mysql_secure_installation

    2、安装apache2

    yum install httpd

    设置apache开机启动,并启动apache,这里打开http://你的ip/可以看到apache的欢迎页面,记得把iptables的80端口打开

    chkconfig --levels 235 httpd on
    /etc/init.d/httpd start

    Apache在CentOS下默认程序路径为 /var/www/html ,默认配置文件 /etc/httpd/conf/httpd.conf. 扩展配置文件在 /etc/httpd/conf.d/

    3、安装php5和Apache PHP5模块

    yum install php

    安装好后必须重启apache服务

    /etc/init.d/httpd restart

    4、测试php是否可用

    vi /var/www/html/info.php

    写入如下内容,保存

    <?php
    phpinfo();
    ?>

    打开http://你的ip/info.php看到phpinfo页面

    5、让php5支持mysql

    在库里搜索php,找到支持mysql模块和组件

    yum search php

    按需选择安装

    yum install php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc

    重启apache2

    /etc/init.d/httpd restart

    打开http://你的ip/info.php可以看到mysql的支持情况

    6、安装phpmyadmin

    在官方库里没有phpmyadmin,现在导入RPMforge GPG key:

    rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
    yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

    安装:

    yum install phpmyadmin

    改变apache中的phpmyadmin配置文件

    vi /etc/httpd/conf.d/phpmyadmin.conf

    注释掉<Directory “/usr/share/phpmyadmin”>…</Directory>这一节,这样做可以使phpmyadmin不限于本地打开

    接下来改变phpMyAdmin从cookie认证到http认证

    vi /usr/share/phpmyadmin/config.inc.php

    改后为

    $cfg['Servers'][$i]['auth_type'] = 'http';

    重启Apache:

    /etc/init.d/httpd restart

    此时CentOS 6.2 x86_64下的LAMP环境配置完成

    :)EOT

     

  • wc命令统计当前目录下指定文件

    查看当前目录下文件的个数

    ls -l | grep "^-" | wc -l

    查看当前目录下文件的个数,包括子目录下的文件

    ls -lR| grep "^-" | wc -l

    查看某目录下目录的个数,包括子目录

    ls -lR| grep "^d" | wc -l

    上面命令主要要素说明:

    ls -l

    长列表输出该目录下文件及目录信息

    grep “^-”

    把文件过滤出来;如果只保留目录就是 grep “^d”

    wc -l

    统计输出信息的行数,因一行信息对应一个文件,所以也是文件的个数

  • mysql备份和还原数据库

    备份服务器上所有数据库,加上–opt表示采用优化(Optimize)方式。

    mysqldump -uroot -ppasswd --opt --all-databases > allbackupfile.sql

    mysqldump -uroot -ppasswd -A > allbackupfile.sql

    备份指定数据库

    mysqldump -uroot -ppasswd databasename > /tmp/dbbackup.sql

    备份指定的表,写在要备份的库后面

    mysqldump -uroot -ppasswd databasename table1 table2 > /tmp/tables.sql

    还原MySQL数据库的命令(还原表就不用加表名了)

    mysql -hhostname -uusername -ppassword databasename < backup.sql

    还原为utf-8

    mysql -uusername -ppassword databasename --default-character-set=utf8 < backup.sql

    mysqldump 加 where

    mysqldump -uroot -ppasswd databasename table1 --where "table1.a=1" > /tmp/table.sql

    使用–tab方式备份和还原数据库

    首先将备份文件存在/home/jpuyy/blog,这时会生成以表名命名的.sql和.txt文件,.sql保存了表的创建语句,.txt保存了以默认分隔符的纯数据文本。

    mysqldump -u root -p --tab=/home/jpuyy/blog database

    接下来需要导入数据库时

    mysqladmin create newdatabase
    cat /home/jpuyy/blog/*.sql | mysql newdatabase
    mysqlimport newdatabase /home/jpuyy/blog/*.txt

     

    只导出表结构

    mysql -hhostname -uusername -ppassword -d databasename > backup.sql

    简单的每小时备份脚本

    #/bin/bash
    datetime=`date +%F-%H:%M`
    mysqldump -udba -p'passwd' --opt --all-databases > all-databases-$datetime.sql
    gzip all-databases-$datetime.sql
    
  • scp 命令在linux之间复制文件和目录

    一、将本机文件复制到远程服务器上

    #scp /var/www/clients.tar.gz [email protected]:/var/www/

    /var/www/clients.tar.gz 本地文件的绝对路径
    通过root用户登录到远程服务器192.168.1.75
    /var/www/将本地文件复制到位于远程服务器上的路径
    输入yes表示同意建立ssh连接按提示输入root用户的密码
    建立连接后开始传输文件,显示百分比、实际时间和传送速度等信息

    二、将远程服务器上的文件复制到本机

    #scp [email protected]:/var/www/clients.tar.gz /home/

    注意:

    1.如果ssh端口非22端口,需加参数-P xxx,具体用什么端口视情况而定,命令格式如下(参数紧跟 scp 命令):

    #scp -P 4588 [email protected]:/usr/local/sin.sh /home/administrator

    2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

  • Linux修改主机名三步走

    装的是Centos6.2,开始起的名字是my,现修改为huoban

    修改 Linux 主机名需要3步。

    1.使用 hostname 修改当前主机名。
    hostname huoban
    重新登陆上ssh会发现已经变成[root@huoban ~]#

    2.修改 /etc/sysconfig/network  配置文件,以便下次重启的时,使用新的主机名。
    vim /etc/sysconfig/network
    找到HOSTNAME修改为:
    HOSTNAME=huoban

    3.修改本机的域名解析文件 /etc/hosts ,使得本机的应用程序能够解析新的主机名。

    vim /etc/hosts

    形式为

    ip地址 主机名.域名 别名

    本机没有域名可以不改

    uname -a 也可查看当前的主机名