1.centos时间同步问题

ntp时间同步方式

1.安装ntp时间

  1. (1)检查是否安装ntp服务
  2. $rpm -qa | grep ntp
  3. $yum install -y ntp
  4. (2)设置开机自启
  5. $chkconfig ntpd on
  6. (3)查看ntp状态
  7. $chkconfig --list ntpd

2.配置ntp时间同步

  1. (1)配置内网ntp-server(node01)
  2. vim /etc/ntp.conf
  3. driftfile /var/lib/ntp/drift
  4. #允许远程时间源与我们本地源同步,但不允许远程源查询或修改本本地系统服务
  5. restrict default nomodify notrap nopeer noquery
  6. #允许通过回环地址127.0.0.1的所有访问.也可以被收紧限制,但这样会影响一些本职的功能
  7. restrict 127.0.0.1
  8. restrict ::1
  9. #本地网络主机限制较少。默认被注释了,放开注释,允许内网其他主机同步本机时间
  10. restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
  11. #这里换成以下几个ntp服务器
  12. server 0.cn.pool.ntp.org #China
  13. server 1.asia.pool.ntp.org #Asia
  14. server 2.centos.pool.ntp.org #centos
  15. server 3.pool.ntp.org #Worldwide
  16. #允许上层时间服务器主动修改本机时间
  17. restrict 0.cn.pool.ntp.org nomodify notrap noquery
  18. restrict 1.asia.pool.ntp.org nomodify notrap noquery
  19. restrict 2.centos.pool.ntp.org nomodify notrap noquery
  20. restrict 3.pool.ntp.org nomodify notrap noquery
  21. #上边列表中的时间服务器都不可用时,同本地时间同步
  22. server 127.127.1.0 # local clock
  23. fudge 127.127.1.0 stratum 10
  24. includefile /etc/ntp/crypto/pw
  25. keys /etc/ntp/keys
  26. disable monitor
  27. (2)配置内网NTP-Clients
  28. 内网其他设备作为NTP的客户端配置,相对就比较简单,而且所有设备的配置都相同。
  29. $vim /etc/ntp.conf
  30. driftfile /var/lib/ntp/drift
  31. #允许远程时间源与我们本地源同步,但不允许远程源查询或修改本本地系统服务
  32. restrict default nomodify notrap nopeer noquery
  33. #允许通过回环地址127.0.0.1的所有访问.也可以被收紧限制,但这样会影响一些本职的功能
  34. restrict 127.0.0.1
  35. restrict ::1
  36. #本地网络主机限制较少。默认被注释了,放开注释,允许内网其他主机同步本机时间
  37. restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
  38. #这里换成以下几个ntp服务器
  39. server 192.168.1.71 #内网ntp-server服务器
  40. #允许上层时间服务器主动修改本机时间
  41. restrict 192.168.1.71 nomodify notrap noquery
  42. #上边列表中的时间服务器都不可用时,同本地时间同步
  43. server 127.127.1.0 # local clock
  44. fudge 127.127.1.0 stratum 10
  45. includefile /etc/ntp/crypto/pw
  46. keys /etc/ntp/keys
  47. disable monitor

3.启动ntp

  1. (1)启动ntp-server(node01)
  2. $service ntpd start
  3. (2)启动ntp-server(node02node03)
  4. $ntpq -pn

2.Centos7 安装Mysql

下载mysql的repo源

  1. wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

进行yum源安装

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

查看yum源中的mysql安装包

  1. yum repolist all | grep mysql

安装MySQL

  1. yum install mysql-server

3.centos 安装7z压缩文件

  1. wget http://nchc.dl.sourceforge.net/project/p7zip/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2
  2. tar -jxvf p7zip_9.20.1_src_all.tar.bz2
  3. cd p7zip_9.20.1
  4. make
  5. make install
  1. 安装bzip2
  2. yum install -y bzip2
  3. 安装gcc-c++
  4. yum -y install gcc gcc-c++

4.centos 安装 java1.8

install cmd

  1. yum -y install java-1.8.0-openjdk*

5.Linux 更改root与home分区大小的方法总结

1.查看/home的路径信息

  1. mount |grep home

2.卸载home分区

  1. umount /home

3.删除home的lv

  1. lvremove /dev/mapper/centos-home
  1. 扩展root分区的大小
  1. lvextend -L +350G /dev/mapper/centos-root

5.进行 xfs_growfs

  1. xfs_growfs /dev/centos/root

6.创建home的lv

  1. lvcreate -L 50GB -n home centos

7.创建文件系统

  1. mkfs.xfs /dev/centos/home

8.挂载

  1. mount /dev/mapper/centos-home

6.Centos安装Nginx

安装Nginx源

执行以下命令:

  1. rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装该rpm后,我们就能在/etc/yum.repos.d/ 目录中看到一个名为nginx.repo 的文件。

安装Nginx

安装完Nginx源后,就可以正式安装Nginx了。

  1. yum install -y nginx

Nginx默认目录

输入命令:

  1. whereis nginx

即可看到类似于如下的内容:

nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx
以下是Nginx的默认路径:

  1. (1) Nginx配置路径:/etc/nginx/
  2. (2) PID目录:/var/run/nginx.pid
  3. (3) 错误日志:/var/log/nginx/error.log
  4. (4) 访问日志:/var/log/nginx/access.log
  5. (5) 默认站点目录:/usr/share/nginx/html

事实上,只需知道Nginx配置路径,其他路径均可在/etc/nginx/nginx.conf 以及/etc/nginx/conf.d/default.conf 中查询到。

常用命令

(1) 启动:

  1. nginx

(2) 测试Nginx配置是否正确:

  1. nginx -t

(3) 优雅重启:

  1. nginx -s reload

(4) 查看nginx的进程号:

  1. ps -ef |grep nginx

(5)nginx服务停止

  1. nginx -s stop
  2. kill -9 pid

当然,Nginx也可以编译源码安装,步骤相对要繁琐一些,总的来说,还是比较简单的,本文不作赘述

问题1

  1. 1452#1452: *1 no live upstreams while connecting to upstream
  2. upstream s3 {
  3. --- 修改 max_fails = 5----
  4. server 192.168.1.61:7480 max_fails=5 fail_timeout=60s;
  5. server 192.168.1.62:7480 max_fails=5 fail_timeout=60s;
  6. server 192.168.1.63:7480 max_fails=5 fail_timeout=60s;
  7. }
  1. Nginx 13: Permission denied 解决方案
  1. chown("/var/cache/nginx/client_temp", 0) failed (13: Permission denied)

关闭selinux

  1. vi /etc/selinux/config
  2. SELINUX=disable

7.文件系统缓存dirty_ratio与dirty_background_ratio两个参数区别

vm.dirty_background_ratio

  1. 这个参数指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如5%)就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入外存;

vm.dirty_ratio

  1. 而这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如10%),系统不得不开始处理缓存脏页(因为此时脏页数量已经比较多,为了避免数据丢失需要将一定脏页刷入外存);在此过程中很多应用进程可能会因为系统转而处理文件IO而阻塞。

参数理解

  1. 先达到vm.dirty_background_ratio的条件然后触发flush进程进行异步的回写操作,但是这一过程中应用进程仍然可以进行写操作,如果多个应用进程写入的量大于flush进程刷出的量那自然会达到vm.dirty_ratio这个参数所设定的坎,此时操作系统会转入同步地处理脏页的过程,阻塞应用进程

8.CentOS 7.x 调整 I/O Scheduler(调度器)优化系统性能

  1. 目前 Linux 上有如下几种 I/O 调度算法
  2. 1.noop(No Operation) - 通常用于内存存储的设备。
  3. 2.cfq(Completely Fair Scheduler ) 完全公平调度器。进程平均使用IO带宽。
  4. 3.Deadline 针对延迟的调度器,每一个 I/O,都有一个最晚执行时间。
  5. 4.Anticipatory 启发式调度,类似 Deadline 算法,但是引入预测机制提高性能

1、查看CentOS6 CentOS7下IO支持的调度算法

  1. CentOS 6.x
  2. #dmesg | grep -i scheduler
  3. io scheduler noop registered
  4. io scheduler anticipatory registered
  5. io scheduler deadline registered
  6. io scheduler cfq registered (default)
  7. CentOS 7.x
  8. #dmesg | grep -i scheduler
  9. [ 0.739263] io scheduler noop registered
  10. [ 0.739267] io scheduler deadline registered (default)
  11. [ 0.739315] io scheduler cfq registered
  12. 看到CentOS 7.x默认支持的是deadline算法,CentOS 6.x下默认支持的cfq算法,而一般我们会在SSD固态盘硬盘环境中使用noop算法

2、查看设备当前的 I/O 调度器

  1. #cat /sys/block//queue/scheduler
  2. 假设磁盘名称是 /dev/sda
  3. #cat /sys/block/sda/queue/scheduler
  4. noop [deadline] cfq

3、临时生效的方法

  1. #cat /sys/block/sda/queue/scheduler
  2. noop [deadline] cfq
  3. #echo cfq>/sys/block/sda/queue/scheduler
  4. #cat /sys/block/sda/queue/scheduler
  5. noop deadline [cfq]
  6. CentOS7下默认的算法被调整为cfq

4、永久生效的方法

  1. CentOS 7.x
  2. #grubby --update-kernel=ALL --args="elevator=deadline"
  3. #reboot
  4. #cat /sys/block/sda/queue/scheduler
  5. noop [deadline] cfq

9.Linux 常用指令

nc

  1. nc的作用
  2. 1)实现任意TCP/UDP端口的侦听,nc可以作为serverTCPUDP方式侦听指定端口
  3. 2)端口的扫描,nc可以作为client发起TCPUDP连接
  4. 3)机器之间传输文件
  5. 4)机器之间网络测速

nc可以作为server端启动一个tcp的监听

  1. nc -l 9999

shell 实现文本去重

  1. sort、管道和uniq结合运用
  2. 去除重复并保留一份重复的数据
  3. example:
  4. [root@bogon ~]# sort test|uniq
  5. fffff
  6. jason

实现将多行数据,转换一行打印(Linux)

  1. cat date1.txt | xargs

Shell去除空行的4种方法

用tr命令
  1. cat date1.txt |tr -s '\n'

用sed命令
  1. cat date1.txt |sed '/^$/d'

用grep命令
  1. grep -v '^$' date1.txt

能列出系统上所有的磁盘

  1. lsblk(list block devices)

批量删除进程

  1. ps -ef | grep ceph | grep -v 'su ceph' | grep -v 'grep ceph' | awk '{print $2}' | xargs kill -9

检查集群的时间

  1. for i in `seq 1 3`;do ssh s${i} date;done
  2. for i in `seq 1 18`;do echo cm${i} && ssh cm${i} date;done

查看网卡

查看磁盘io

linux 下安装maven

  1. wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
  2. yum -y install apache-maven

批量删除大文件

  1. rsync --delete-before -d 目录

批量修改文件名

该脚本实现从命令行中获取目录,并遍历目录,修改匹配的文件名

  1. for file in `ls $1 | grep .COMPLETED`
  2. do
  3. #echo $file
  4. newfile=`echo $file | sed 's/.COMPLETED//g'`
  5. echo $newfile
  6. file1=$1$file
  7. newfile1=$1$newfile
  8. echo $file1
  9. echo $newfile1
  10. mv $file1 $newfile1
  11. done

按照指定分隔符切割字符串

  1. #!/bin/bash
  2. string=`cat jar.txt`
  3. array=(`echo $string | tr ':' ' '` )
  4. for var in ${array[@]}
  5. do
  6. echo $var
  7. done

10.CentOS 7 中firewall-cmd命令

如果你的系统上没有安装使用命令安装

  1. 安装firewalld 防火墙yum install firewalld
  2. 开启服务systemctl start firewalld.service
  3. 关闭防火墙systemctl stop firewalld.service
  4. 开机自动启动systemctl enable firewalld.service
  5. 关闭开机制动启动systemctl disable firewalld.service

获取活动的区域

  1. firewall-cmd --get-active-zones

开启某个端口

  1. firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp //永久
  2. firewall-cmd --zone=public --add-port=8080-8081/tcp //临时