zoukankan      html  css  js  c++  java
  • 生产环境日常命令

    查看http的并发请求数与其TCP连接状态

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

    {++S[$NF]统计每行最后一个出现的次数,至少一次,放入数组中$NF的意思就是打印最后一行
    END前面是把最后一个字段+1放到数组S中,END是把数组打印出来,
    关联数组的key是最后一个字段的值,value都是1(因为默认值是0,++后是1)
    查看当前系统每个ip的连接数

    ESTABLISHED:正常数据传输状态

    CLOSED:无连接是活动 的或正在进行

    TIME_WAIT:另一边已初始化一个释放

    查看当前系统每个IP的连接数

    netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c |sort -rn

    sort:排序并输出
    uniq:去重复行

    用tcpdump嗅探80端口的访问看看谁最高

    tcpdump   -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr  |head -20

    结果:
    1000 packets captured
    1002 packets received by filter
    0 packets dropped by kernel

    1000 IP 192.168.1.103

    #查看网站并发连接数

    netstat -nat|grep ESTABLISHED|wc –l

    查询访问IP总量

    awk '{print $1}' /var/log/nginx/access.log|sort|uniq -c|sort -nr |wc -l

    查询访问量前10的ip

    awk '{print $1}' /var/log/nginx/access.log|sort|uniq -c|sort -nr |head -10

    PV访问量(Page View),即页面访问量,每打开一次页面PV计数+1,刷新页面也是

    IP访问数指公网IP访问数

    UV访问数(Unique Visitor)指独立访客访问数,一台电脑终端为一个访客

     

    在/test目录中查找包括ibm内容的文件

    ls /test |xargs grep -ri "ibm"

    打印nginx.conf的行号和内容

    cat -n /etc/nginx.conf


    替换文件内容
    vim /test/test.txt
    :%   s/b/a/g
    sed  -i  's/a/bb/g'  test.txt

    linux如果挂载wind共享目录

    mount -t  cifs  -o usernam=账户名,password=密码 //ip/目录  挂载目录

    shell下32位随机密码生成
    cat /dev/urandom | head -1 | md5sum | head -c 32 >> /pass

     

    写一个脚本查找最后创建时间是3天前,后缀是*.log的文件并删除

    find / -name "*.log" -ctime +3 -exec rm -f {} ;

    写一个脚本将某目录下大于100K的文件移动至/tmp

    #!/bin/bash
    for file in `ls /root`
    do
    if [ -f $file  ];then
         if [ `ls -l $file|awk '{print $5}'` -gt 100000  ];then
          mv $file  /test/
    fi
    fi
    done

    如何查看二进制文件

    hexdump

     

    在当前目录把包含xx内容的文件找出,并提取出规定三个内容,并把指定的一个内容改成要求的格式(提示:先替换分隔符)

    ls  /test |xargs grep -ri "aa" |awk '{print $1,$2,$3,$4,$5}

     

     

    MySQL误操作后快速恢复数据的方法

    https://www.jb51.net/article/99941.htm

    https://www.cnblogs.com/kevingrace/p/5904800.html

     

     

    mysql一主多从,主库宕机如何合理切换从库,其他从库如何处理

    https://blog.csdn.net/yabingshi_tech/article/details/51286073

    http://blog.51cto.com/ucode/1747078

     

     

    查看http的并发请求数与其TCP连接状态
    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    {++S[$NF]   统计每行最后一个出现的次数,至少一次,放入数组中$NF的意思就是打印最后一行

    END前面是把最后一个字段+1放到数组S中,END是把数组打印出来, 关联数组的key是最后一个字段的值,value都是1(因为默认值是0,++后是1)

    查询访问量前10的IP地址
    awk '{print $1}' /var/log/nginx/access.log|sort|uniq -c|sort -nr|head –10

    sort  将文件进行排序-n:依照数值的大小排序 ,-r:以相反的顺序来排序;

    例子:sort error.log |uniq -c |sort -rn >> cuowu.txt          #对文本行按重复次数进行排序,分析日志用

    -b:忽略每行前面开始出的空格字符;
    -c:检查文件是否已经按照顺序排序;
    -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
    -f:排序时,将小写字母视为大写字母;
    -i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;
    -m:将几个排序号的文件进行合并;
    -M:将前面3个字母依照月份的缩写进行排序;
    -n:依照数值的大小排序;
    -o<输出文件>:将排序后的结果存入制定的文件;
    -r:以相反的顺序来排序;
    -t<分隔字符>:指定排序时所用的栏位分隔字符;
    +<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
    uniq   去重 -c在每列旁边显示该行的重复次数
    -c或——count:在每列旁边显示该行重复出现的次数;
    -d或--repeated:仅显示重复出现的行列;
    -f<栏位>或--skip-fields=<栏位>:忽略比较指定的栏位;
    -s<字符位置>或--skip-chars=<字符位置>:忽略比较指定的字符;
    -u或——unique:仅显示出一次的行列;
    -w<字符位置>或--check-chars=<字符位置>:指定要比较的字符。

    ls |xargs du -h|sort -rn  |head   -20         #列出当前目录使用量,并按大小排序,#不递归下级目录使用du –sh

    xargs用作替换工具,读取输入数据重新格式化后输出

    ll     -hS                                                   #列出当前目录文件并按大小排序

    mysqldump -h 172.26.100.145 -uroot -proot test >/home/testbackup.sql  备份远程test数据库到本地
    如果要备份本地mysql库到远程服务器,就先备份到本地在拷贝过远程服务器或者挂载远程服务器某目录

    mysqldump -uroot -p123456 --opt --all-databases >all-data.sql         #备份所有库
    mysql -uroot -pqwer1234 < /bak/mysqlbak/2018031711-all.sql            #还原

    #本地文件复制到远程服务器,如果要复制目录 scp –r

    scp –r  /www/   root@121.201.66.149:/opt/ 

    #复制远程服务器目录到本地

    scp -r  root@121.201.66.38:/www/  /opt/ 

    #查找并删除七天以前的数据

    find /opt/db_bak/  -name "*.sql" -type f -mtime +7 -exec rm {} ; > /dev/null 2>&1

    #查找前48~24小时修改过的文件。而不是48小时以内修改过的文件

    find /opt/db_bak/ -name "*.sql" -type f -mtime 1     

    find /opt -type f -size 0 -exec rm -rf {} ;                             #删除空文件

    nethogs                               #监控每个进程的网络带宽占用
    iftop                                      #动态查看网卡流量

    dstat 3 5                              #执行5次,每次间隔3秒性能监控器-dstat

    #看进程号为18842的进程打开了哪些文件
    ps -ef |grep nginx                
    lsof -p 1859

    lsof  可以列出被进程所打开的文件的信息

    nginx/sbin/nginx -V         #查看nginx有哪些模块

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf    #nginx指定配置文件启动

    ps aux --sort=rss |sort -k 6 –rn              #以内存大小排序列出进程

    grep -Ev   "#|^$"   xx.conf       #查看文件排除以#开关和空白行,适合查看配置文件

    sed '/#.*$/d; /^ *$/d'             #查看文件排除以#开关和空白行,适合查看配置文件

    grep –r –l  内容  路径                   #查找包含某些内容的文件

    #查找文件中包含error的内容并显示出来 -A 1是同时显示下行内容 -e选项是或者的意思,也就是多条件

    grep -e  "error"  -A 1   /var/log/nginx/access.log
    egrep -v "^#|^$"    xx.conf       #查看文件排除以#开关和空白行,适合查看配置文件

    pgrep nginx|xargs kill                            #查找进程pid并kill

    ifconfig |awk -F"[ ]+|[:]" 'NR==2 {print $4}'    获取当前IP地址,强大的awk
    utmpdump /var/log/wtmp                #文本方式查看wtmp日志(二进制文件)

    find /home/ -user prj  -exec cp  -a {}  /opt/  ;          #查找prj用户所拥有的文件,并放到/opt/下 

    mii-tool eth0                                #查看eth0物理连接状态
    service --status-all                       #查看已安装所有服务包括已运行和未运行的服务

    ping -L 源IP  -c   目标ip                   #指定源IP ping

    dirs          #打印出当前的目录栈,也就是显示最近访问过的目录

    清除缓存
    echo 1 > /proc/sys/vm/drop_caches
    echo 2 > /proc/sys/vm/drop_caches
    echo 3 > /proc/sys/vm/drop_caches

    查询访问量前10的url
    cat /var/log/nginx/access.log  |cut -f 6 -d ' '|sort |uniq -c |sort -k 1 -n -r |head -10 
    查询最耗时的页面
    cat /var/log/nginx/access.log  |sort -k 4 -n -r |head –10 

    cat /proc/sys/kernel/threads-max     #查看进程的总数,包括未运行的?

    #查看已运行的进程总数
      ps -ef |wc -l
         

    ps -ef|grep php-fpm|wc -l
    ps -ef|grep nginx|wc -l
    ps -ef|grep java|wc –l

    pkill -KILL -t pts/0              #踢出登录的用户,用who查看终端

    mysql --help | grep Distrib          #查看mysql版本

    ln -s /usr/local/mysql/bin/*  /usr/local/bin/    #编译安装mysql后无法执行mysql等命令,把命令连接到系统默认的路径,路径可能好几个

    crontab -l                                       #查看计划任务列表
    pgrep nginx                                      #查看服务进程号
    top -id 1                                        #观察是否有异常进程出现

    setfacl -m u:natasha:rwx fstab                   #单独设置用户权限,而不影响其他用户权限
    getfacl fstab                                    #验证权限

    数据备份还原:
    压缩:
    tar czvf /opt/http.tar.gz  /var/log/httpd/          #压缩备份,备份的包含了路径去除了/
    解压
    tar zxvf /opt/http.tar.gz   -C  /                   #还原直接到/就可以了,因为备份时/下还有var/log路径

    临时解决DOS攻击-封IP
    iptables -I INPUT -s 91.121.80.20 -j DROP

    SSH免密登录:
    配置ssh免秘钥后用scp不需要密码
    1. 在服务器 A 上执行如下命令来生成配对密钥:
    ssh-keygen -t rsa (后面全部按回车)
    2. 将 /root/.ssh/ 目录中的 id_rsa.pub 文件复制到 服务器 B 的 /root/.ssh/ 目录中,并改名为 authorized_keys。 如果已经存在就把内容在末尾添加
    scp  /root/.ssh/id_rsa.pub root@192.168.24.150:/root/.ssh/authorized_keys
    以后从服务器 A scp 到服务器 B 就不需要密码了(如果没有/root/.ssh/是因为没执行ssh-keygen -t rsa 生成秘钥命令)


    yum install openssh-clients -y                    #scp软件包

    tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示,与cat相反的命令          
    awk    -v 选项,指定在任何输入被读入前定义参数

    #正常联网情况下直接对网络地址(注意前提是ntpd服务要启动)
    echo '*/15 * * * *  /usr/sbin/ntpdate    -u 210.72.145.44 ' >> /var/spool/cron/root

    /var/spool/cron/root    #计划任务配置文件
    凌晨三点       00  03 * * *
    每五分钟执行  */5 * * * *

    每小时执行     0 * * * *

    每天执行        0 0 * * *

    每周执行       0 0 * * 0

    每月执行        0 0 1 * *

    每年执行       0 0 1 1 *

    在zabbix服务上设置邮件报警外部SMTP模式
    #vim /etc/mail.rc      #尾部追加smtp验证信息
    set from=pengrongjiana@163.com smtp=smtp.163.com
    set smtp-auth-user=pengrongjiana@163.com smtp-auth-password=qwer1234
    set smtp-auth=login
    #设置完成之后发送一个测试邮件,收到邮件表示配置成功
    echo "发现短时间内大量访问的ip"|mail -s "网站访问警告" 623181912@qq.com
    如果没有/etc/mail.rc文件,则需要yum install -y mailx

    tcp wrappers 访问控制

    vim /etc/hosts.allow              #仅允许199.150和199.55ssh连接

    sshd:192.168.199.150,192.168.199.55

    vim /etc/hosts.deny

    sshd:all

    linux命令累积>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    w            ##查看已登录的用户                            
    last                               #查看用户登录日志
    lsof -i :22                                      #查看22端口被哪个IP进程占用和已建立连接的客户端
    lsof /bin/bash                                   #查看谁正在使用某个文件
    #查看php-fpm的地址
    whereis php-fpm
    启动php-fpm
    rpm -ql httpd            #服务详细路径
    tar zcvf - httpd/ | ssh root@10.0.0.10  tar xzf - -C /root   SSH快速备份文件到另一服务器
    echo -e    处理特殊字符,而不会将它当成一般文字输出,如 echo -e `cat access_log`
    /etc/profile                                #所有系统用户登录执行
    hash          #记录了已执行过的命令的完整路径
    grep –e “内容” *.html  /   #找到根目录下以.html结尾的文件中含有“内容”的行并显示它们
    df -hT
    uptime
    free -m
    ls | xargs rm    #目录中大量文件删除

    linux netstat 用不了,安装net-tools即可: yum -y install net-tools

    生成SSH证书并复制到远端服务器# 好像不行
    ssh-keygen -y -f ~/.ssh/id_rsa && cat ~/.ssh/id_rsa.pub | ssh root@192.168.193.129 "cat - >> ~/.ssh/authorized_keys" 
    sed '/^$/d' filename              #删除空行
    sed 's/ //g' filename             #删除空格
    sed -i 's/#.*$//g' filename       #删除#后的注释 
    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1       # 生成随机字符
    行首或行尾插入:
    sed 's/^/new/g' file
    sed 's/$/new/g' file
    wget -r -p -np -k http://www.jb51.net     #用wget下载整站  
    cat filename |awk -F '' '{if(NF>6) print $0}'      #查找每行大于几位数的数据:
    lynx -dump www.jb51.net        #获取HTML页面文本内容包含页面的URL 
    links -dump www.jb51.net       #获取HTML页面文本内容 对中文内容支持不好
    socat TCP4-LISTEN:1234,reuseaddr,fork, TCP4:www.baidu.com:80    端口重定向

    rpm -qpl xxxxxx.rpm               #安装包默认安装位置

    who -b                      #查看最后一次系统启动的时间
    last reboot                #查看Linux系统历史启动的时间
    diff                            #输出为了两个文件修改后的内容
    cfdisk /dev/sdb          #图像分区(2T以下)
    parted /dev/sdb         #大容量存储分区
    blkid                         #列出所有分区的UUID
    ls -l /dev/disk/by-uuid/         #列出所有分区的UUID和分区名称

    #开始进入扫描、修复文件系统,注意:在单用户模式(init 1)、修复模式或把设备umount后进行修复

    fsck.ext4 -y /dev/sdb

    ethtool -p ethX                                #执行网卡灯亮,多网卡是用来判断网卡位置

    lsusb                                          #查看USB设备, -v看详细信息
    more /proc/cpuinfo |grep -i model              #查看CPU型号
    more /proc/scsi/scsi |grep -i model            #查看硬盘型号
    nmcli con |sed -n '1,2p'                                                      #获取网卡UUID
    more /etc/udev/rules.d/70-persistent-net.rules                   #查看网卡MAC地址,ifcofig也行
    chmod  -R   +x  目录                                                           #目录和目录下子目录权限+执行 
    /root/.bash_profile                                                              #配置单用户登录后执行
    env                                                            #列出当前终端上的全部环境变量
    lsmod                                                            #列出加载的内核模块
    modprobe dm-multipath                                                     #加载模块
    cat /proc/partitions                                                              #查看所有分

    blkid                              #列出所有分区的UUID

    ls -l /dev/disk/by-uuid/           #列出所有分区的UUID和分区名称

    ntp服务器配置同步系统时间>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #正常联网情况下直接对网络地址
    echo '*/15 * * * *  /usr/sbin/ntpdate  地址' >> /var/spool/cron/root

    设置本地ntp时间服务器/etc/ntp.conf

    1.则将“restrict default kod nomodify notrap nopeer noquery”这行修改成:

    restrict default nomodify

    2.如果需要使用本地时间,则把erver 0.centos.pool.ntp.org iburst把这几行同步互联网的

    删掉或者用“#”号注释掉,然后添加以下两行:(注意:相反不添加这两行,直接使用上面的连接互联网,客户端就更新不了)

    server 127.127.1.0

    fudge 127.127.1.0 stratum 10

    3.重启ntpd服务,设置开机启动ntpd服务               #注意客户端不启动ntpd也行

    客户端连接ntp时间服务器,并加入计划任务

    ntpdate  192.168.199.23                #不要频繁执行连接

    echo '*/15 * * * *  /usr/sbin/ntpdate  192.168.199.23' >> /var/spool/cron/root

    客户端设置: 

    ntpdate   192.168.199.23

    加入计划任务

    如果本地时间和硬件时间都不对。需要手动设置后重启也生效:

    1.date                               #查看本地时间

    2.hwclock --show                     #查看机器上的硬件时间

    3.date -s "2017-12-27 16:48"         #一次性设置时间

    4.hwclock -w                         #写入 BIOS 时间,系统重启后会读取BIOS,clock -w也可以

    clock -w                              #把系统时间写入CMOS

    vi /etc/sysconfig/ntpd  

    SYNC_HWCLOCK=yes                    #将同步好的时间写到CMOS里

    ntpq -p                      #检查时间服务器同步的状态

    clock --utc                   #显示UTC时间

    同步互联网时钟并写入硬件bios:

    使用以下方式同步LFS系统时间,cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 修改时区为上海

    ntpdate cn.pool.ntp.org;hwclock -w ,同步时间并写入bios硬件时间;

    设置计划任务,确保时间得到更新,crontab -e.添加以下内容:

    0 * * * * /usr/sbin/ntpdate cn.pool.ntp.org;hwclock -w

     

    /usr/sbin/ntpdate time.nist.gov     #同步互联网时间,如果没互联网就同步硬件时钟,如果服务器较多就配置一台ntp时间服务器

     

    系统负载>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    top -id 1                                                          #观察是否有异常进程出现

    三行:cpu状态

    6.7% us — 用户空间占用CPU的百分比。

    0.4% sy — 内核空间占用CPU的百分比。

    0.0% ni — 改变过优先级的进程占用CPU的百分比

    92.9% id — 空闲CPU百分比

    0.0% wa — IO等待占用CPU的百分比

    0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

    0.0% si — 软中断(Software Interrupts)占用CPU的百分比

    0.0% st - 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比。

    top默认的排序列是“%CPU”,按键盘数字“1”,可监控每个逻辑CPU的状况

    敲击键盘“b”(打开/关闭加亮效果)

    通过”shift + >按照%MEM来排序

    敲击“f”键,top进入另一个视图,在这里可以编排基本视图中的显示字段,想显示哪个字段就按什么,比如显示SWAP就按前面的p字母

    PID — 进程id

    USER — 进程所有者

    PR — 进程优先级

    NI — nice值。负值表示高优先级,正值表示低优先级

    VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

    RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

    SHR — 共享内存大小,单位kb

    S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

    %CPU — 上次更新到现在的CPU时间占用百分比

    %MEM — 进程使用的物理内存百分比

    TIME+ — 进程使用的CPU时间总计,单位1/100秒

    COMMAND — 进程名称(命令名/命令行)

    mpstat                      #查看CPU使用率

    系统负载>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    ps aux | wc -l   #进程总数检查进程个数是否正常 (比如超过250,比如单个服务的进程数ps -ef |grep httpd|wc -l

    -a 显示一个终端的所有进程,除了会话引线

    -u uid or username 选择有效的用户id或者是用户名

    -x 显示没有控制终端的进程,同时显示各个命令的具体路径

    USER    用户名

    UID    用户ID(User ID)

    PID    进程ID(Process ID)

    PPID    父进程的进程ID(Parent Process id)

    SID    会话ID(Session id)

    %CPU    进程的cpu占用率

    %MEM    进程的内存占用率

    VSZ    进程所使用的虚存的大小(Virtual Size)

    RSS    进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。

    TTY    与进程关联的终端(tty)

    STAT    进程的状态:进程状态使用字符表示的(STAT的状态码)

    R 运行    Runnable (on run queue)            正在运行或在运行队列中等待。

    S 睡眠    Sleeping                休眠中, 受阻, 在等待某个条件的形成或接受到信号。

    I 空闲    Idle

    Z 僵死    Zombie(a defunct process)        进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。

    D 不可中断    Uninterruptible sleep (ususally IO)    收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。

    T 终止    Terminate                进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。

    P 等待交换页

    W 无驻留页    has no resident pages        没有足够的记忆体分页可分配。

    X 死掉的进程

    < 高优先级进程                    高优先序的进程

    N 低优先    级进程                    低优先序的进程

    L 内存锁页    Lock                有记忆体分页分配并缩在记忆体内

    s 进程的领导者(在它之下有子进程);

    l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)

    + 位于后台的进程组

    START    进程启动时间和日期

    TIME    进程使用的总cpu时间

    COMMAND    正在执行的命令行命令

    NI    优先级(Nice)

    PRI    进程优先级编号(Priority)

    WCHAN    进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。

    FLAGS    与进程相关的数字标识

    系统负载>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    netstat -ap | grep ssh                  #找出程序运行的端口

    netstat -n | grep tcp | grep 23 | wc -l #监控网络服务连接数

    -a (all)显示所有选项,默认不显示LISTEN相关

    -t (tcp)仅显示tcp相关选项

    -u (udp)仅显示udp相关选项

    -n 拒绝显示别名,能显示数字的全部转化成数字。

    -l 仅列出有在 Listen (监听) 的服務状态

    -p 显示建立相关链接的程序名

    -r 显示路由信息,路由表

    -e 显示扩展信息,例如uid等

    -s 按各个协议进行统计

    -c 每隔一个固定时间,执行该netstat命令

    "Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。

    Foreign Address    外部地址

    state     状态  LISTEM监听

    查看连接某服务端口最多的的IP地址

    netstat -nat | grep "192.168.199.22:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20

    netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn   #TCP各种状态统计排序

    awk '{print $1}' access.log |sort|uniq -c|sort -nr|head -10  #分析access.log获得访问前10位的ip地址

    netstat -a|more                                        #列出所有端口

    netstat -ap | grep ssh  t -l                     #只显示监听端口

    netstat -s                                             #显示所有端口的统计信息

    磁盘读写>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    time dd if=/dev/zero of=/test.dbf bs=8k count=300000   #测试磁盘写能力

    time dd if=/dev/sda  of=/dev/null bs=8k                #测试磁盘读能力

    time dd if=/dev/sda of=/dxcs.dbf bs=8k                 #测试磁盘同时读写速度

    iotop                                                  #动态查看IO情况

    iotop  -o                                              #直接查看输出比较高的磁盘读写程序

    日志分析>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    tail -n20 -f messages                   #查询最近动态日志最后20条

    uniq -c demo.log                        #标记该行重复的数量,不重复值为1

    more 或者less或者head                   #因为这些命令都是不是从最近时间开始排序的所以少用

    sed -n

    more?/var/log/secure                    #系统的登录日志,查看是否有可疑登录信息

    修改日志保留默认时间>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    vim /etc/logrotate.conf  修改项 rotate 12 单位是周,默认是4周,修改项/var/log/wtmp {   默认是1,改

    为3,

    service rsyslog  restart           #重启日志服务器

    不重启系统情况下新添加硬盘(vm也可以)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    1.fdisk -l             #确认开始有几个硬盘

    2.新添加一块硬盘

    重新读取:

    echo "- - -" > /sys/class/scsi_host/host0/scan   

    echo "- - -" > /sys/class/scsi_host/host1/scan

    echo "- - -" > /sys/class/scsi_host/host2/scan

    ls /sys/class/scsi_device/         #确认扫出来磁盘多少个

    ls /sys/class/scsi_host/           #多少个盘都固定只有这三个的  

    echo 1 > /sys/class/scsi_device/0:0:0:0/device/rescan

    echo 1 > /sys/class/scsi_device/0:0:2:0/device/rescan

    echo 1 > /sys/class/scsi_device/2:0:0:0/device/rescan


     

    linux启动后出现桌面背景但无登录界面解决办法>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>(这个方法上次好像也没解决)-手动启动桌面

    1.同时按下Ctrl  Alt  F2  进入命令行界面。 

    2.root登录进去,执行init3                 (登录进去后也可以先执行 init 5 试试能不能进桌面)

    3.执行startx 启动界面

    如果重启后还是一样就修改下面的试试

    vi /etc/pam.d/gdm

    将auth required pam_succeed_if.so user != root quiet 这行注释掉

    yum<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    yum clean all                     #清除本地yum软件包
    yum makecache
    yum repolist all                  #查看仓库列表和状态
    yum  search vnc                   #查找有关vnc的软件包
    yum  update   软件包              #更新软件       
    yum -y install xinetd             #安装service管理命令

    rpm命令<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    rpm -ql 软件名                                      #查询已安装的软件包的相关文件的安装路径  

    rpm -qs neokylin-lsb                                #列出包里文件并显示状态

    rpm  -qf    /usr/libexec/clock-applet               #查看属于哪个软件包

    rpm -pql neokylin-lsb-core-4.1-1.el6.ns6.02.x86_64   #列出RPM软件包内的文件信息

    rpm -pqi  redhat-lsb                               #列出RPM软件包的描述信息

    ln /bin/neokylin_lsb_init  /bin/redhat_lsb-init 

    rpm -qa|grep neokylin-lsb                           #查看lsb已安装的五个软件包

    rpm2cpio redhat-lsb-4.0-7.el6.centos.src.rpm |cpio -idvm  #用于将rpm软件包转换为cpio格式的文件后查找里面的软件包(方便查看包里内容)

    rpm -Uvh  *.rpm                                     #更新软件包,前提是依赖全部都在

    rpm -e gnome-panel-2.30.2-16.el6.ns6.01.x86_64 –nodeps

    mount<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    mount -o remount,rw /opt             #文件系统是只读模式,只需将这个处于只读状态的文件系统重新挂载即可

    mount  -a                            #将/etc/fstab的所有内容重新加载

    fuser -m directory                   #umount不了的时候查看那个进程在使用状态的目录

    mount -t cifs -o username=administrator,password=1 //192.168.24.108/迅雷下载   /wind  #挂载wind共享目录

    mount --move /mnt/userdirs  /home    #更换挂载点

    findmnt -t ext4                      #列出系统挂载点

    mount -t nfs -o vers=3,proto=tcp,rsize=1048576,wsize=1048576,hard,intr,timeo=50 10.241.2.84:/NFS_CloudDisk/CloudDiskShare/ /media     #挂载华为存储?

    设置分辨率:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    xrandr                           #查看当前及支持的分辨率

    gnome-display-properties         #修改分辨率                                      

    xrandr -s 1024×768               #设置分辨率,xrandr查看支持的分辨率,一次性的

    xrandr -s 0                      #将屏幕恢复到原来的分辨率,当你使用了一些需要或者会自动改动您屏幕分辨率的程序以后。

    遇到一些旧的显示器,先看显卡支持哪些分辨率,然后修改/boot/grub/grub.conf  在quit 后添加vga=773 保存,如果进不了桌面就

    先编辑引导菜单也是在quit 后添加vga=773进入系统后修改/boot/grub/grub.conf  在quit 后添加vga=773

    因为使用的是vnc、xmanager,直接用gnome-display无法调整

    几乎所有的操作系统都能支持与使用X Window,GNOME和KDE也都是以X Window为基础建构成的

    echo $DESKTOP_SESSION            #查看环境是gnome或者kde

    修改系统界面变成英文字符>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    vim  /etc/sysconfig/i18n

    LANG="zh_CN.UTF-8"                  #改成LANG="zh_US.UTF-8",保存退出,重启系统,不过已经新建的用户不会改变

    更改已经新建的用户为英文字符集,登录用户

    vi ~/.bash_profile

    export LANG=zh_US.utf-8

    注销再登录用户

    一、安装桌面环境 CentOS6.8-minimal安装gnome桌面

    @1、安装桌面软件

    yum groupinstall "Desktop"

    @2、安装X-Window组件

    yum groupinstall "X Window System"

    @3、安装字体

    yum -y install dejavu-sans-* dejavu-serif-fonts

    @4、开机启动

    编辑/etc/inittab文件, 将id:3:initdefault修改为 id:5:initdefault重启后生效

    Linux普通用户配置java环境变量

    1、上传java包到服务器

    2、解压 tar -zxvf jdk-8u131-linux-x64.tar.gz
    3、配置环境变量

        3.1、vi ~/.bash_profile

       3.2、在.bash_profile文件中填入如下语句:

        export PATH
        export JAVA_HOME=/home/appadmin/apps/jdk1.8.0_131
        export PATH=$JAVA_HOME/bin:$PATH

        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

      3.3 保存退出

    4、使配置文件生效

    source ~/.bash_profile

    5、测试 java -version

    mysql不区分大小写

    vim /etc/my.cnf  的[mysqld]下

    lower_case_table_names=1

  • 相关阅读:
    spark 修改默认log4j.properties 配置
    shell $x的含义
    hadoop hdfs 有内网、公网ip后,本地调试访问不了集群解决
    JAVA concurrent包下Semaphore、CountDownLatch等用法
    ETL DAG调度策略
    python2.7 Cheetah You don't have the C version of NameMapper installed
    python threading 用法
    log4j2 Filter用法详解
    ThreadLocal 原理及一些实现
    ETL hive update 之 deltamerge 优化
  • 原文地址:https://www.cnblogs.com/pengrj/p/9060010.html
Copyright © 2011-2022 走看看