zoukankan      html  css  js  c++  java
  • Linux管理日记(二)

    14  启动内网端口转发

    ### 2. 查看IP以及网卡信息
    # 可以发现, eth0 的地址 inet addr:10.144.7.195, 此为内网网卡
    # 公网网卡, eth1 的地址 inet addr:115.28.9.136,
    # 此外,还有一个回环地址, 127.* 
    
    ifconfig
    
    ### 2.0 查看端口占用情况
    netstat -ntl
    
    ### 2.1 查看系统中现有的iptables规划集
    
    iptables --list -t nat
    
    ### 2.2 查看IP转发的启用状态
    
    cat /proc/sys/net/ipv4/ip_forward
    
    ########清空 nat table
    # --flush -F  , Delete all rules
    # --delete-chain -X , Delete a user-defined chain
    # --zero -Z ,  Zero counters in chain or all chains
    
    iptables -F -t nat
    iptables -X -t nat
    iptables -Z -t nat
    
    
    ######### 启用IP包转送,即时生效
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # IP包转送,也可以设置 net.ipv4.ip_forward = 1
    vim /etc/sysctl.conf
    
    # 然后执行生效, 重启依然有效
    sysctl -p
    
    # 将 3306端口映射到 10.144.169.131:3306,
    # PREROUTING 和 POSTROUTING 都必须设置
    # 经测试已经打通
    iptables -t nat -A PREROUTING -m tcp -p tcp --dport 6606 -j DNAT --to-destination 10.144.169.131:6606
    iptables -t nat -A POSTROUTING -j MASQUERADE
    

    15.  压缩文件

    将当前目录下的 blog 目录打包到 blog.tar.gz 文件中:

    tar -zcf blog.tar.gz blog
    其中, -c 表示压缩,compress; -z表示进行zip压缩; -f 就表示输出到文件(而不是输出流,内存什么的.); 后面的 blog 就是相对的路径, 可以是空格分隔的多个文件/目录.

    而命名为 .tar.gz 也是一种命名习惯,一眼就可以看出是经过 gzip 压缩的 tar文件。

    如果不需要压缩,命令如下所示:

    tar -cf blog.tar blog

    16. 解压文件

    对应的目录如下: 

    tar -zxf blog.tar.gz
    如果不是gzip压缩,可以如下:

    tar -xf blog.tar

    17. NFS简单使用

    参考地址: http://blog.chinaunix.net/uid-26284318-id-3111651.html

    # 说明,centos5使用的是portmap
    # yum install nfs-utils portmap
    # centos6 使用的是rpcbind
    # yum -y install nfs-utils rpcbind

    NFS服务端

    # 安装软件包
    yum -y install nfs-utils rpcbind
    
    # 创建测试目录
    cd /usr/local/
    mkdir /usr/local/nfstest
    mkdir /usr/local/nfstest/nfsdir
    
    # 添加内容
    echo "/usr/local/nfstest 10.144.169.0/24(rw,no_root_squash)" >> /etc/exports
    
    cat /etc/exports
    
    chkconfig nfs on
    # 启动
    /etc/init.d/rpcbind start
    
    /etc/init.d/nfs start

    NFS客户端

    # 安装软件包
    yum -y install nfs-utils rpcbind
    
    showmount -e 10.144.169.135
    
    # 
    cd /usr/local/
    mkdir /usr/local/nfstest
    
    mount -t nfs 10.144.169.135:/usr/local/nfstest/  /usr/local/nfstest/
    
    ll /usr/local/nfstest/
    
    
    # 设置自动加载,需要写入到 /etc/fstab # 此处暂时还不理解
    10.144.169.135:/usr/local/nfstest/ /usr/local/nfstest/ nfs nodev,ro,rsize=32768,wsize=32768 0 0

    18.  虚拟机复制以后设置网卡信息

    VMware虚拟机复制以后,可能出现网卡信息加载不成功的问题;

    Bringing up interface eth0:  Device eth0 does not seem to be present,delaying initialization.                    [FAILED]

    此时,需要修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件的信息以避免冲突。方法如下: 

    # cat /etc/udev/rules.d/70-persistent-net.rules
    # This file was automatically generated by the /lib/udev/write_net_rules
    # program, run by the persistent-net-generator.rules rules file.
    #
    # You can modify it, as long as you keep each rule on a single
    # line, and change only the value of the NAME= key.
    
    # PCI device 0x8086:0x100f (e1000)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:d7:b6:a9", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    
    # PCI device 0x8086:0x100f (e1000)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:90:dd:db", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
    先查看物理硬件信息,然后记下 eth1网卡的MAC地址信息,比如"00:0c:29:90:dd:db";

    然后修改eth0配置脚本:

    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    修改以后的信息类似如下所示,其中,我这里的虚拟机NAT对应的是 192.168.254.*网段,具体的网段信息可以看windows的 "VMware Network AdapterVMnet8" 这张网卡的信息,或者在cmd下输入 ipconfig 命令查看,而 192.168.254.2 是VMWARE的网关。自动NAT的地址。如果审不准请查看VMWARE的自动DHCP信息。

    # cat /etc/sysconfig/network-scripts/ifcfg-eth0"
    DEVICE=eth1
    HWADDR=00:0C:29:90:DD:DB
    TYPE=Ethernet
    UUID=cfb84a5c-c605-46ee-853c-214a7f4d7546
    ONBOOT=yes
    NM_CONTROLLED=yes
    BOOTPROTO=static
    IPADDR="192.168.254.137"
    NETMASK="255.255.255.0"
    GATEWAY="192.168.254.2"
    
    DNS1="192.168.254.2"
    然后,重启网络即可。在我这里是测试ping www.baidu.com 是通的。

    #重启网络
    service network restart
    另外,针对安装VMWARE以后windows7的网络很慢的问题,可以在 控制面板 --> 网络连接 --> 本地连接 --> 属性 --> Internet4设置 --> 高级 --> IP设置 --> 默认网关 设置跃点数为 1 即可。

    参考地址: http://www.linuxidc.com/Linux/2012-12/76248.htm

    另外找到一个很好的Linux管理员日记: http://xiangxingchina.iteye.com/blog/960337

    还有一个CSDN专家的 http://blog.csdn.net/cndes/article/details/4636909

    19. 安装rsync

    服务器端:

    ############
    ############
    ## 服务器端
    
    # 安装 (xinetd, 超级Internet守护进程)
    yum -y install rsync xinetd
    
    # 启动rsync依赖服务
    /etc/init.d/xinetd start
    chkconfig xinetd on
    
    mkdir /usr/local/ieternal
    mkdir /usr/local/ieternal/upload
    mkdir /etc/rsyncd
    
    #rsync服务器的配置文件
    touch /etc/rsyncd/rsyncd.conf
    
    #定义服务器信息的文件
    touch /etc/rsyncd/rsyncd.motd
    
    #用户密码文件
    touch /etc/rsyncd/rsyncd.secrets
    chmod 600 /etc/rsyncd/rsyncd.secrets
    
    
    
    ##############################
    ##############################
    vim /etc/rsyncd/rsyncd.conf


    文件 /etc/rsyncd/rsyncd.conf 的内容如下: 其中只定义了一个upload的节,后面的客户端连接需要指明连到此节

    address=192.168.254.137
    port=873
    max connections=10
    uid=root
    gid=root
    use chroot=no
    strict modes=yes
    
    
    motd file =/etc/rsyncd/rsyncd.motd
     
    log format=%t %a %m %f %b
    syslog facility=local3
    timeout =300
    
    [upload]
    path=/usr/local/ieternal/upload/
    exclude =repository/
    comment =upload path
    ignore errors
    read only=no
    list=yes
    auth users =rsync_user
    secrets file =/etc/rsyncd/rsyncd.secrets
    hosts allow=192.168.254.0/255.255.255.0
    hosts deny=*
    pid file =/var/run/rsyncd.pid
    lock file =/var/run/rsync.lock
    log file =/var/log/rsync.log
    指定用户与密码,此处显示了内容:

    #cat /etc/rsyncd/rsyncd.secrets
    rsync_user:pass_word
    欢迎信息:

    #cat /etc/rsyncd/rsyncd.motd
    services user=rsync_user;pass_word=***
    启动rsync服务
    #启动rsync服务:
    /usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf
    
    # 查看端口状态
    netstat -ntl
    

    客户端:

    # 1.安装
    mkdir /usr/local/ieternal
    mkdir /usr/local/ieternal/upload
    mkdir /etc/rsyncd
    yum -y install rsync xinetd
    
    # 2.启动rsync依赖服务
    /etc/init.d/xinetd start
    chkconfig xinetd on
    
    # 3.客户端必须配置密码文件
    touch /etc/rsync.pas
    chmod 600 /etc/rsync.pas
    vim /etc/rsync.pas
    指定密码:
    #cat /etc/rsync.pas
    pass_word

    执行同步:

    # 4.执行同步
    # 下载:
    rsync -auzv --progress --delete --password-file=/etc/rsync.pas rsync_user@192.168.254.137::upload /usr/local/ieternal/upload
    
    # 上传:
    rsync -auzv --progress --delete --password-file=/etc/rsync.pas /usr/local/ieternal/upload/* rsync_user@192.168.254.137::upload

    错误信息: 

    rsync: failed to connect to 192.168.254.137: No route to host (113)
    rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.6]
    已查明是由于防火墙开启引起的,此时可以修改防火墙过滤规则,或者在客户端与服务器端停用防火墙:

    # 停止防火墙
    service iptables stop

    20. IO监控工具

    安装:

    yum -y install iotop
    使用

    # iotop

    大体的汇总信息如下:磁盘读写的速度

    Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s

    21.  安装memcached

    如果没有gcc,需要安装: 

    # 安装 gcc
    yum -y install gcc

    安装依赖库 libevent::

    # 安装依赖库 libevent
    yum -y install libevent libevent-devel

    下载 程序包, 参考地址是: http://memcached.org/

    # 下载
    mkdir /usr/local/ieternal
    mkdir /usr/local/ieternal/download
    cd /usr/local/ieternal/download
    wget http://www.memcached.org/files/memcached-1.4.17.tar.gz

    对下载包校验:

    # 计算 sha1值, 
    # linux自带的哈希校验工具:  sha1sum 或 md5sum; 
    # 2b4fc706d39579cf355e3358cfd27b44d40bd79c
    sha1sum memcached-1.4.17.tar.gz 
    解压:

    # 解压
    tar zxf memcached-1.4.17.tar.gz
    安装: 
    # 安装
    # 默认情况, memcached 安装到 /usr/local/bin/ 目录下
    
    cd memcached-1.4.17
    ./configure
    make
    make install
    前台启动:

    # /usr/local/bin/memcached -p 11211 -m 64m -vv -u root
    /usr/local/bin/memcached -u root
    后台启动:

    # 后台启动
    # -h 只显示帮助信息
    # -u root 时指定以某个用户运行
    # -p TCP端口号;
    # -m 最大内存大小,默认为 64M
    # -vv 用 very verbose 模式启动,调试信息和错误 输出到控制台
    # -d 作为daemon在后台启动
    
    /usr/local/bin/memcached -p 11211 -m 64m -d -u root

    启动时使用pid文件,将进程ID写入到特定文件:

    # 后台启动,端口号,内存,用户,pid文件
    /usr/local/bin/memcached -d -p 11211 -m 128m -u root -P /usr/local/memcached.pid
    
    ps aux |grep memcached
    
    cat /usr/local/memcached.pid
    
    # 杀进程,注意不是单引号,而是 大键盘数字1前面那个字符`
    kill `cat /usr/local/memcached.pid`


    22. 使用 GPG 生成密钥对

    # 安装GnuPG, 即GPG,一般系统已经自带
    yum install gpgme -y
    
    # 查看帮助信息
    gpg --help
    
    # 生成密钥...
    gpg --gen-key
    生成密钥及更多的详细内容,请参考: GPG入门教程

    23. Apache Bench基准测试

    Apache Bench 简称 ab,是 Apache服务器附带的一款压力基准测试工具。使用方式:

    /usr/local/apache2/bin/ab -c 10 -t 10 http://www.baidu.com/
    其中, -c 是指concurrency,即并发线程数;-t 是指时间,单位是秒。上面的意思是: 测试 百度 10秒钟,采用 10个客户端线程.

    另外还有一个常用的参数是 -n, 即总的限制测试次数是多少次,如果多个参数组合使用,应该是先达到的条件会成为限制条件。
    当然,上面是使用的全路径,请根据安装路径决定。也可以先进入apache的bin目录:

    cd /usr/local/apache2/bin/
    # 测试100次
    ./ab -c 10 -n 100 http://www.baidu.com/
    在windows下的使用方式也是一样的,只是路径不一样而已。

    当然,也可以将结果输出到文件之中,采用HTML格式:

    ./ab -c 10 -t 10 -w http://www.baidu.com/ >> /usr/local/ab_20140311204010.log.html
    详细的帮助信息如下所示:

    [root@ALY bin]# cd /usr/local/apache2/bin/
    [root@ALY bin]# ./ab -h
    使用方式: ./ab [options] [http://]hostname[:port]/path
    选项包括:
        -n requests     要执行的请求的次数
        -c concurrency  要构建多少个并发线程来执行
        -t timelimit    最大限制时间,单位(Second,秒). 时间到后会等待响应完成才退出
        -b windowsize   TCP协议 发送/接收的缓冲区大小, 单位字节(byte)
        -p postfile     POST请求要发送的数据. 需要设置选项 -T
        -u putfile      PUT请求要发送的数据. 需要设置选项 -T
        -T content-type 发送的内容格式头信息 (Content-type), 例如
                        'application/x-www-form-urlencoded' 等,
                        默认值是 'text/plain'
        -v verbosity    需要打印的故障排除日志信息级别
        -w              使用 HTML tables 格式打印结果信息
        -i              使用 HEAD 方式请求,而不是 GET 方式
        -x attributes   要插入作为 table attributes 的字符串
        -y attributes   要插入作为 tr attributes 的字符串
        -z attributes   要插入作为 td/th attributes 的字符串
        -C attribute    添加 cookie信息, 示例: 'Apache=1234. (可多个)
        -H attribute    添加任意的头信息(header line), 例如: 'Accept-Encoding: gzip'
                        插入到其他正常的头信息后面. (可多个)
        -A attribute    添加基本网站认证信息(Basic WWW Authentication), 
                        属性采用英文冒号(:) 来分隔 username 和 password.
        -P attribute    添加代理用户密码(Basic Proxy Authentication), 
                        属性采用英文冒号(:) 来分隔 username 和 password.
        -X proxy:port   要使用的代理服务器,以及端口号
        -V              只打印版本号并且退出
        -k              使用 HTTP KeepAlive 特性
        -d              不要显示响应时间统计百分比.
        -S              不要显示 信任估计(? confidence estimators) 和警告信息.
        -g filename     将收集的数据输出到 Gnuplot交互式绘图 格式文件.
        -e filename     将响应时间统计百分比输出到 CSV 文件
        -r              当 socket 接受到错误时不要退出.
        -h              显示帮助信息(实际上就是此信息)


  • 相关阅读:
    Golang之排序算法
    Golang之一个简单的聊天机器人
    golang之流程控制(注意点)
    golang之指针
    vs code中自动添加注释插件koroFileHeader
    stack栈、heap堆的说明图
    c语言中的数据类型的最大最小值
    数组问题:a与&a有的区别
    STM32F10x之NVIC
    大小端的另一种测试方法
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467049.html
Copyright © 2011-2022 走看看