• Linux实战


    1. Linux基础与基本配置
      1. 常用指令

    cd /etc:进入目录,ll:显示目录详细列表,ls:显示目录所有文件和子目录,pwd:显示当前目录路径,date:修改日期时间,top:看CPU情况,mkdir:创建目录,vi index.html创建/修改文件,cat index.html查看文件,tail –n 10 index.html:查看文件最后10行,yum –y install php:安装php, yum –y remove php:卸载PHP,find / -name index.html:名字查找文件,whereis php。

    echo “” > filename

    /usr/local/nginx/sbin/nginx -s reload

    systemctl stop php-fpm.service

    /etc/init.d/php-fpm restart

    service firewalld stop //关闭Centos 7防火墙

              dstat -nt //查看网络

    netstat -an |grep ^tcp.*:80|egrep -v 'LISTEN|127.0.0.1'|awk -F"[ ]+|[:]" '{print $6}'|sort|uniq -c|sort -rn|awk '{if ($1>20){print $2}}' 查服务器单IP并发

    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 

    查服务器并发

    cat /proc/cpuinfo |grep "cores"|uniq     #查看CPU多少核

    cat /proc/cpuinfo |grep MHz|uniq      #查看CPU频率

    ps -ef | grep sersync2                  #查看进程

    tail -n 20 /var/log/php-fpm/www-error.log #查看PHP报错

    chmod -R  777 /trunk           #改权限

    chown root root /trunk

    cat /etc/redhat-release        #查看OS版本

    arch                           #查看OS多少位

    tar -zxvf nginx-1.8.0.tar.gz   #tar解压

    du -h --max-depth=1 /alidata/cache   #查看文件夹大小

    rpm -qa | grep -i mysql        #查看软件的版本

    ab -c 1000 -n 100 http://test65.suofeiya.com.cn/index.php

    ipconfig /flushdns               #刷新DNS

    find /www -name "*.log" | xargs greg "卡券插件命中结束"

    ps aux | grep rsync | grep -v grep | cut -c 9-15 | xargs kill -s 9                    杀死进程

    date -s 12:49:00

    如果YUM被锁住,可以使用rm -rf /var/run/yum.pid

    zip -r mydata.zip mydataunzip wwwroot.zip

      1. 大部分用VMWare安装,度娘一堆教程。
      2. 安装时候,把FTP也一起装上。
      3. VMWare IP地址配置成可用的网段。
      4. 一定要设置setenforce 0      #不设置的话,会有各种杯具。
        1. 当出现setenforce: SELinux is disabled

    vi /etc/selinux/config

    把SELINUX=disabled改成SELINUX=enforcing

      1. 如果需要不重启SELINUX生效的方法:

    /etc/init.d/network restart

      1. 如果是RedHat,配置YUM。
        1. 检查是否安装了YUM:

    rpm-qa|grep yum

      1. 删除yum包

    rpm -qa|grep yum|xargs rpm -e --nodeps

    再次确认:rpm–qa|grep yum

      1. 下载新的yum包。使用Centos6.5的yum包

    1) 查看版本号和系统类别:

    cat /etc/redhat-release

    arch

    2)根据上一步,找到对应的yum包,然后下载。我的服务器对应的为:

    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-69.el6.centos.noarch.rpm

    wgethttp://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm

      1. 安装

    rpm -ivhyum-metadata-parser-1.1.2-16.el6.x86_64.rpm yum-3.2.29-69.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm

    如果出错,证明

      1. 更换yum源,将原有源删除或备份到别的目下:

    cd /etc/yum.repos.d/

    wget  http://mirrors.163.com/.help/CentOS6-Base-163.repo

    vi CentOS6-Base-163.repo

    编辑文件,把文件里面的$releasever全部替换为版本号:6(注意,不是6.5!)最后保存!

      1. 清除原有缓存,重建缓存,更新系统:

    clean all

    yum makecache

    yum update

    1. Nginx安装配置

    systemctl enable httpd  ####开启apache

      1. 安装

    cd /usr/src

    #下载lnmp

    wget http://nginx.org/download/nginx-1.8.0.tar.gz

    chmod +x nginx-1.8.0.tar.gz

    tar -zxvf nginx-1.8.0.tar.gz

    #安装必备工具

    rpm -qa | grep -i nginx

    yum  -y install zlib-devel pcre-devel openssl-devel

    #安装nginx

    cd nginx-1.8.0

    ./configure --prefix=/usr/local/nginx --with-openssl=/usr/include/openssl --with-pcre --with-http_stub_status_module

    make

    make install

    cd /usr/local/nginx/                  #安装成功

    sbin/nginx -c /usr/local/nginx/conf/nginx.conf  #设置配置文件路径

    /usr/local/nginx/sbin/nginx -s reload            #启动nginx

    netstat -ntlp                     #看看nginx是否已经用上80

      1. 分发配置

    vi nginx.conf

    #user  nobody;

    worker_processes  4;

    #error_log  logs/error.log;

    #error_log  logs/error.log  notice;

    #error_log  logs/error.log  info;

    #pid        logs/nginx.pid;

    events {

        worker_connections  10240;

    }

    http {

    include       mime.types;

        default_type  application/octet-stream;

        #access_log  logs/access.log  main;

    sendfile        on;

        #tcp_nopush     on;

        #keepalive_timeout  0;

        keepalive_timeout  65;

    gzip  on;

    gzip_disable     "MSIE [1-6].";

    gzip_proxied any;

        gzip_comp_level 5;

        gzip_buffers 16 8k;

    gzip_min_length    1k;

    gzip_vary on;

    gzip_types text/plain text/css image/gif image/jpeg image/png application/json application/x-javascript text/xml application

    /xml application/xml+rss text/javascript;

    fastcgi_connect_timeout 300s;

    fastcgi_send_timeout 300s;

    fastcgi_read_timeout 300s;

    fastcgi_buffer_size 128k;

    fastcgi_buffers 8 128k;#8 128

    fastcgi_busy_buffers_size 256k;

    fastcgi_temp_file_write_size 256k;

    fastcgi_intercept_errors on;

    client_max_body_size 20M;

    upstream backend {

                      ip_hash;

    server 10.10.10.210:80;

    server 10.10.10.211:80;

            }

    include conf.d/*.conf;

    }

               编辑conf.d/ wx.suofeiya.com.cn.conf;

    server {

    listen       80;

            server_name  wx.suofeiya.com.cn;

    location / {

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_buffering off;

                proxy_pass http://backend;

            }

    }

    编辑conf.d/tb.suofeiya.com.cn.conf;

    upstream tb_site {

    server 192.168.2.123;

            }

    server {

    listen       80;

            server_name  tb.suofeiya.com.cn;

    location / {

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_buffering off;

                proxy_pass http://tb_site;

            }

    }

      1. 节点配置

    server {

    listen       80;

            server_name  wx.suofeiya.com.cn;

    location / {

    root   /www/wechat/app/www;

    index  index.php index.html index.htm;

            }

            error_page   500 502 503 504  /50x.html;

    location = /50x.html {

    root   html;

            }

    location ~ .php$ {

                #root           html;

                fastcgi_pass   127.0.0.1:9000;

                fastcgi_index  index.php;

                fastcgi_param  SCRIPT_FILENAME  /www/wechat/app/www$fastcgi_script_name;

    include        fastcgi_params;

            }

    }

      1. 启动

    # /usr/local/nginx/sbin/nginx -s reload

    # vi /etc/rc.local

    /usr/local/nginx/sbin/nginx

      1. 防火墙

    yum install -y iptables

    yum install iptables-services

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

    -A INPUT -s 10.10.10.0/24 -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

    要封停一个IP,使用下面这条命令:

        iptables -I INPUT -s ***.***.***.*** -j DROP

    要解封一个IP,使用下面这条命令:

    iptables -D INPUT -s ***.***.***.*** -j DROP

      1. 伪静态

    location / {

    root   /www;

    index  index.php index.html index.htm;

    rewrite "^/index.html" /index.php last;

    rewrite "^/search.html$"    /search.php last;

    rewrite "^/channel_space.html$"    /channel_space.php last;

    rewrite "^/channel_style.html$"    /channel_style.php last;

    rewrite "^/channel_action.html$"   /channel_action.php last;

    rewrite "^/wiki_channel.html$"     /wiki_channel.php last;

    rewrite "^/dealer.html$"          /dealer.php last;

    rewrite "^/bespoke.html$"         /bespoke.php last;

    rewrite "^/budget.html$"           /budget.php last;

    rewrite "^/baoming.html$"         /baoming.php last;

      1. 缓存
        1. 缓存插件安装

    当安装完nginx,缺忘记安装Ngx_cache怎么办呢?

    Cd /usr/src

    wgethttp://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz

    tar–zxvfngx_cache_purge-2.3.tar.gz

    chmod–R 777 ngx_cache_purge-2.3

    cdnginx-1.8.0

    ./configure --add-module=../ngx_cache_purge-2.3 --prefix=/usr/local/nginx --with-openssl=/usr/include/openssl --with-pcre --with-http_stub_status_module

    Make

    备份/usr/local/nginx/sbin/nginx

    把objs/nginx复制过去

    重启nginx

    /usr/local/nginx/sbin/nginx –V

      1. 缓存配置

    use epoll;

    worker_connections  30720;

    gzip_disable     "MSIE [1-6].";

    gzip_proxied any;

            gzip_comp_level 5;

            gzip_buffers 16 8k;

    gzip_min_length    1k;

    gzip_vary on;

    gzip_types text/plain text/css image/gif image/jpeg image/png application/json application/x-javascript text/xml application

    /xml application/xml+rss text/javascript;

            proxy_connect_timeout 5;

            proxy_read_timeout 60;

            proxy_send_timeout 5;

    proxy_buffer_size 16k;

            proxy_buffers 4 64k;

    proxy_busy_buffers_size 128k;

    proxy_temp_file_write_size 128k;

            proxy_temp_path /usr/local/cache/img_temp;

            proxy_cache_path /dev/shm/tmp levels=1:2 keys_zone=pic_cache:500m inactive=1d max_size=10g;

    include conf.d/*.conf;

    server {

    listen       8082;

            server_name  localhost;

            access_log  logs/pic.log;

    location / {

                    proxy_cache pic_cache;

                    proxy_cache_valid 200 304 2h;

                    proxy_cache_key $host$uri$is_args$args;

    proxy_set_header Host  $host;

    proxy_set_header X-Forwarded-For  $remote_addr;

                    proxy_pass http://127.0.0.1:8083;

    expires      1d;

            }

    location ~ /purge(/.*) {

    allow       127.0.0.1;

    deny    all;

                    proxy_cache_purge    pic_cache   $host$1$is_args$args;

            }

            error_page   500 502 503 504  /50x.html;

        }

    server {

    listen 8083;

    server_name localhost;

    root /usr/local/cache/img_s;

    location ~ .*.(gif|jpg|jpeg|png|bmp|swf|ico)$ {

    expires      1d;

    access_log logs/8083pic.log;

            }

    }

    #mkdir /dev/shm/tmp

    #chmod 1777 /dev/shm/tmp

    #mount --bind /dev/shm/tmp /alidata/cache/img_cache

    1. 安装PHP
      1. 增加额外资源库

    默认情况下,CentOS的官方资源是没有php-fpm的, 但我们可以从Remi的RPM资源中获得,它依赖于EPEL资源。

    # yum install yum-priorities -y

    # rpm -Uvh http://baseurl.opencas.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm

    # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

    yum -y remove mysql-libs*

    rpm -qa | grep –i php

      1. 安装 PHP-FPM

    # yum --enablerepo=remi install php php-fpm

    #chkconfig --level 345 php-fpm on       #开机自动启动

      1. 安装PHP插件

    # yum --enablerepo=remi install php-gd php-mysql php-mbstring php-xml php-mcrypt  php-redis php-soap

      1. 启动PHP

    # /etc/init.d/php-fpm restart 

    #systemctl stop php-fpm.service

    # setsebool httpd_can_network_connect 1

    # vi /etc/rc.local #把/etc/init.d/php-fpm restart加进去

    修改PHP.INI的配置,可以参考图库项目的配置

    1. Redis
      1. 安装

    wget http://download.redis.io/releases/redis-3.0.4.tar.gz

    ls

    tar -zxvf redis-3.0.4.tar.gz

    cd redis-3.0.4

    ls

    make

    make install

    redis-server &#开启

           #关连接,重新登录服务器

    redis-cli

    set xx 123

    get xx

      1. 配置

    防火墙:-A INPUT -s 10.10.10.0/24 -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

    开机启动

    # Vi /etc/rc.local

    redis-server&

    1. Rsync服务端
      1. rsync 启动

    #vi /etc/xinetd.d/rsync

      把原来的YES改成NO

    service rsync

    {

    disable = no

            socket_type     = stream

    wait            = no

    user            = root

    server          = /usr/bin/rsync

            server_args     = --daemon

            log_on_failure  += USERID

    }

    随系统启动RSYNC

         #chkconfig rsync on

      1. Rsync配置

    # vi /etc/rsyncd.conf

    # Minimal configuration file for rsync daemon

    # See rsync(1) and rsyncd.conf(5) man pages for help

    # This line is required by the /etc/init.d/rsyncd script

    pid file = /var/run/rsyncd.pid

    port = 873

    address = 10.10.10.211 #本机IP

    uid = root

    gid = root

    use chroot = yes

    read only = yes

    #limit access to private LANs

    hosts allow=192.168.5.0/255.255.255.0(如果是指定几台机器,用逗号分开,或者*)

    hosts deny=*

    max connections = 50

    #motd file = /etc/rsyncd/rsyncd.motd

    #This will give you a separate log file #log file = /var/log/rsync.log

    #This will log every file transferred - up to 85,000+ per user, per sync

    #transfer logging = yes

    log format = %t %a %m %f %b

    syslog facility = local3

    timeout = 300

    [website]

    path = /usr/website/

    list=yes

    read only = no

    ignore errors

    auth users = nobody

    secrets file = /etc/rsync/rsyncd.secrets

    comment = linuxsir home

    #exclude =   beinan/  samba/

      1. 密码文件

    # vi /etc/rsync/rsyncd.secrets

    nobody:002285kss

      1. 启动xinetd

    # service xinetd restart

    启动rsync

    # sudo /usr/bin/rsync --daemon --config=/etc/rsync/rsyncd.conf

    建立快捷方式:

    # ln -s /etc/rsync/rsyncd.conf /etc/rsyncd.conf

    # service xinetd reload

    #vi /etc/rc.local

    /usr/bin/rsync –daemon --config=/etc/rsync/rsyncd.conf

    #netstat -a | grep rsync

    tcp   0      0 0.0.0.0:873     0.0.0.0:*    LISTEN

    1. Rsync客户端
      1. 安装

    # mkdir /etc/rsync

    # vi /etc/rsync/rsyncd.secrets

    002285kss

    # chown root.root rsyncd.secrets

    # chmod 700 rsyncd.secrets

    # /usr/bin/rsync -artuz --progress --delete nobody@10.10.10.210::website /usr/local/nginx/html --password-file=/etc/rsync/rsyncd.secrets

    # vi /etc/rsync/time.sh

    #!/bin/bash

    /usr/bin/rsync -artuz --progress --delete nobody@10.10.10.210::website /www --password-file=/etc/rsync/rsyncd.secrets

    # chmod +x /etc/rsync/time.sh

    # crontab -e

    3 * * * * /etc/rsync/time.sh

      1. 测试

    # rsync --list-only nobody@10.10.10.210::

    下载文件:

    # /usr/bin/rsync -artuz --progress --delete nobody@10.10.10.210::website /usr/local/nginx/html --password-file=/etc/rsync/rsyncd.secrets

    上传文件:

    # /usr/bin/rsync -artuz --progress --exclude='.svn/'--password-file=/usr/local/sersync/rsyncd.passwd  /alidata/www/www.suofeiya.com.cn/ nobody@120.26.85.64::website

    1. Sersync
      1. 安装

    sersync2.5_64bit_binary_stable_final.tar.gz,解压到/usr/local/sersync/

    # cd/usr/local/sersync/

    建立密码文件/usr/local/sersync/rsyncd.passwd 写入与服务器A上rsync配置的用户一样的密码。

    # vi confxml.xml

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <head version="2.5">

    <host hostip="localhost" port="8008"></host>

    <debug start="false"/>

    <fileSystem xfs="false"/>

    <filter start="false">  /*过滤不需要同步的文件或目录*/

    <exclude expression="(.*).svn"></exclude>

    <exclude expression="(.*).gz"></exclude>

    <exclude expression="^info/*"></exclude>

    <exclude expression="^static/*"></exclude>

    </filter>

    <inotify>

    <delete start="true"/>

    <createFolder start="true"/>

    <createFile start="false"/>

    <closeWrite start="true"/>

    <moveFrom start="true"/>

    <moveTo start="true"/>

    <attrib start="false"/>

    <modify start="false"/>

    </inotify>

    <sersync>

    <localpath watch="/usr/website/">/*本地监视目录*/

    <remote ip="192.168.5.168" name="website"/>/*远程IP*/

    <!--<remote ip="192.168.8.39" name="tongbu"/>-->

    <!--<remote ip="192.168.8.40" name="tongbu"/>-->

    </localpath>

    <rsync>

    <commonParams params="-artuz"/>/*rsync命令*/

    <auth start="true" users="nobody" passwordfile="/usr/task/shell/rsyncd.passwd"/>/*密码文件*/

    <userDefinedPort start="false" port="874"/><!-- port=874 -->

    <timeout start="false" time="100"/><!-- timeout=100 -->

    <ssh start="false"/>

    </rsync>

    <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->

    <crontab start="false" schedule="600"><!--600mins-->

    <crontabfilter start="false">

    <exclude expression="*.php"></exclude>

    <exclude expression="info/*"></exclude>

    </crontabfilter>

    </crontab>

    <plugin start="false" name="command"/>

    </sersync>

    <plugin name="command">

    <param prefix="/bin/sh" suffix="" ignoreError="true"/><!--prefix /opt/tongbu/mmm.sh suffix-->

    <filter start="false">

    <include expression="(.*).php"/>

    <include expression="(.*).sh"/>

    </filter>

    </plugin>

    <plugin name="socket">

    <localpath watch="/opt/tongbu">

    <deshost ip="192.168.138.20" port="8009"/>

    </localpath>

    </plugin>

    <plugin name="refreshCDN">

    <localpath watch="/data0/htdocs/cms.xoyo.com/site/">

    <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>

    <sendurl base="http://pic.xoyo.com/cms"/>

    <regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>

    </localpath>

    </plugin>

    </head>

      1. 启动sersync

    # /usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/confxml.xml

    查看进程

    # psaux | grep sersync2

    杀死进程

    # kill -9 11374

    查看进程状态

    # ps aux |grep 'sersync2'

      1. 开机启动

    # vi /etc/rc.local

    /usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/confxml.xml

      1. 监视

    # vi /var/script/check_sersync.sh

    #!/bin/bash

    #Purpose: Check sersync whether it is alive

    #Author: Carl Zhang

    SERSYNC="/usr/local/sersync/sersync2"

    CONF_FILE="/usr/local/sersync/confxml.xml"

    STATUS=$(ps aux |grep 'sersync2'|grep -v 'grep'|wc -l)

    if [ $STATUS -eq 0 ];

    then

            $SERSYNC -d -r -o $CONF_FILE &

    else

    exit 0;

    fi

    # crontab -e

    */5 * * * * /var/script/check_sersync.sh > /dev/null 2>&1

    1. Mysql

    http://blog.csdn.net/liumm0000/article/details/18841197

      1. 安装

    wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz

    ls

    tar zxvf mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz

    cp mysql-5.6.28-linux-glibc2.5-x86_64 /usr/local/mysql -r

    cd /usr/local/mysql/

    ls

    ll

    ########groupadd mysql     //创建mysql组

    ########useradd -g mysql mysql //创建mysql用户添加到mysql组

    chown -R mysql:mysql ./

    ls

    ll

    ./scripts/mysql_install_db --user=mysql

    chown -R root:root ./

    chown -R mysql:mysql data

    cp support-files/mysql.server /etc/init.d/mysql

    service mysql start

    mysql

    ps -ef|grep mysql

    ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

      1. 配置

    # vi /etc/my.cnf

    [client]

    port            = 3306

    socket          = /var/lib/mysql/mysql.sock

    [mysqld]

    port            = 3306

    socket          = /var/lib/mysql/mysql.sock

    skip-external-locking

    key_buffer_size = 500M

    max_allowed_packet = 32M

    table_open_cache = 512

    sort_buffer_size = 4M

    net_buffer_length = 8K

    read_buffer_size = 4M

    read_rnd_buffer_size = 512K

    myisam_sort_buffer_size = 64M

    query_cache_size = 1024M

    query_cache_type= 1

    tmp_table_size = 256M

    max_connections = 1000

    max_connect_errors = 10000000

    wait_timeout = 10

    max_binlog_size=1G

    log-bin=mysql-bin

    binlog_format=mixed

    server-id       = 1

    #skip-grant-tables

    [mysqld_safe]

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

      1. 密码修改,防火墙,开机运行

    http://blog.csdn.net/liumm0000/article/details/18841197

    SET GLOBAL general_log = 'ON';

    SET GLOBAL slow_query_log = 'ON';

    set global expire_logs_days = 3;

    show global variables;

    -- 打开sql 执行记录功能

    set global log_output='TABLE'; -- 输出到表

    set global log=ON; -- 打开所有命令

    执行记录功能general_log, 所有语句: 成功和未成功的.

    set global log_slow_queries=ON; -- 打开慢查询 sql 记录

    slow_log, 执行成功的: 慢查询语句和未使用索引的语句

    set global long_query_time=0.1; -- 慢查询时间限制(秒)

    set global log_queries_not_using_indexes=ON; -- 记录未使用索引的sql 语句

    -- 查询sql 执行记录

    select * from mysql.slow_log order by 1; -- 执行成功的:慢查询语句,和未

    使用索引的语句

    select * from mysql.general_log order by 1; -- 所有语句:成功和未成功的.-- 关闭sql 执行记录

      1. 主从

    vi /etc/my.cnf

    [mysqld]的下面加入下面代码:

    log-bin=mysql-bin

    server-id=1

        innodb_flush_log_at_trx_commit=1

        sync_binlog=1

        #binlog-do-db=wordpress

    #binlog_ignore_db=mysql

    $ service mysqld restart

    mysql> GRANT REPLICATION SLAVE ON *.* TO 'root'@'10.10.10.213' IDENTIFIED BY '密码';

    #防止数据库写入

    //mysql>FLUSH TABLES WITH READ LOCK;

    #解锁数据表。

    //mysql>UNLOCK TABLES;

    SHOW MASTER STATUS;

    请记下显示的信息,配置从服务器会用到。

    +------------------+----------+--------------+------------------+-------------------+

    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

    +------------------+----------+--------------+------------------+-------------------+

    | mysql-bin.000001 |      329 | test         | mysql            |                   |

    +------------------+----------+--------------+------------------+-------------------+

    vi /etc/my.cnf

    server-id=2

    slave-skip-errors=all

    service mysqld restart

    mysql>STOP SLAVE;

    mysql>

    CHANGE MASTER TO MASTER_HOST='10.10.10.212', MASTER_USER='root', MASTER_PASSWORD='Sogal5911*', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=329, MASTER_CONNECT_RETRY=10;

    mysql>START SLAVE;

    show slave status;

      1. 日常维护

    --------------备份

    /usr/local/mysql/bin/mysqldump -u root -h 127.0.0.1 -p test>/usr/src/bak.sql

    /usr/local/mysql/bin/mysqldump -uroot-p suofeiya>/alidata/bak.sql (0a4a25d2eb)

    -------------还原

    mysql -u root -p sfybbs2015</usr/src/151106091551.sql

    mysql -u root -p suofeiya</usr/src/suofeiya.sql

    检查锁表 : show processlist

    数据库引擎:show engines;

    打开my.cnf,在[mysqld]最后添加为上default-storage-engine=InnoDB

    show variables;

                   set global slow_query_log=1;

                   set global long_query_time=4;

    http://www.cnblogs.com/Richardzhu/p/3230221.html

    1. 硬盘挂载

    fdisk -l 看看硬盘情况

    fdisk /dev/vxdb ---------把硬盘分区

    Commond n----------加分区

    mkfs.ext4 /dev/xvdb1 ---格式化xvdb1 是ext4文件类型

    mount -t ext4  /dev/xvdb1 /alidata    把xvdb1挂上去/alidata

    df -lh    #查看分区挂载情况

    mount -t nfs 192.168.55.233:/opt/nfs /nfs

           启动自动挂载 /etc/fstab

    1. SVN

    svn checkout https://192.168.2.218:2009/svn/Sogal_EPortal/trunk/www /trunk

    svn update

    1. PHP 扩展单独安装(redis)

    Mkdir /usr/local/php/ext

    Cd /usr/local/php/ext

    Wget  https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz

    ls

    ll phpredis/

    cd phpredis/

    /alidata/server/php/bin/phpize

    ./configure --with-php-config=/usr/local/php/bin/php-config

    make && make install

    vim /usr/local/php/lib/php.ini

    extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/redis.so

    1. Centos 7安装PHP

    systemctl enable httpd  ####开启apache

    yum -y remove mysql-libs*

    yum -y install epel-release

    #yum -y install php php-fpm

    yum -y install php-gd php-mysql php-mbstring php-xml php-mcrypt  php-redis php-soap

    #/usr/sbin/php-fpm&

    查看php-fpm

    ps aux | grep php-fpm

    php-fpm 关闭:

    kill -INT `cat /var/run/php-fpm/php-fpm.pid`

    php-fpm 重启:

    kill -USR2 `cat /var/run/php-fpm/php-fpm.pid`

    修改/etc/php-fpm.conf 的daemonize = yes,让php-fpm可以后台执行

    CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载

    # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

    # rpm -ivh mysql-community-release-el7-5.noarch.rpm

    # yum install mysql-community-server

    成功安装之后重启mysql服务

    # service mysqld restart

    初次安装mysql是root账户是没有密码的

    设置密码的方法

    # mysql -uroot

    mysql> set password for ‘root’@‘localhost’ = password('mypasswd');

    mysql> exit

    搞定!

    1. 远程监控

    nc -w2 10.10.10.210 9000 && echo ok ||echo no

    1. 如何把一个shell脚本添加为系统服务,并跟随系统启动

    可以看到“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本。

    系统服务的启动就是通过“/etc/rc.d/init.d”中的脚本文件实现的。我们也可以写一个自己的脚本放在这里。

    脚本文件的内容也很简单,类似于这个样子(例如起个名字叫做“hahad”):

    . /etc/init.d/functions

    start() {

            echo "Starting my process "

            cd /opt

            ./haha.sh

    }

    stop() {

            killall haha.sh

            echo "Stoped"

    }

    写了脚本文件之后事情还没有完,继续完成以下几个步骤:

    chmod +x hahad                    #增加执行权限

    chkconfig --add hahad             #把hahad添加到系统服务列表

    chkconfig hahad on                 #设定hahad的开关(on/off)

    chkconfig --list hahad               #就可以看到已经注册了hahad的服务

    date +"%Y-%m-%d %H:%M:%S" #查看时间

  • 相关阅读:
    Git中从远程的分支获取最新的版本到本地方式
    vector map迭代器失效解决方案
    git 远程库 创建私钥
    centos type.h 编译错误问题
    关于/usr/bin/ld: cannot find -lcrypto 的错误
    线程存储(Thread Specific Data)
    bgcolor RGB 和16进制之间的转换,16进制转RGB,源码
    html 网页代码大全,总结,使用
    使用iframe的好处与坏处详细比拼
    java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
  • 原文地址:https://www.cnblogs.com/smallidea/p/11906238.html
Copyright © 2020-2023  润新知