#查看文件描述符限制 ulimit -n #调整文件描述符(文件最后添加内容) vi /etc/security/limits.conf * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535 #RAID卡查看 dmesg | grep -i raid [ 1.521079] Areca RAID Controller0: Model ARC-1200, F/W V1.49 2010-12-02 [ 1.521203] scsi host0: Areca SATA RAID Controller (RAID6 capable) [ 1.648025] scsi 0:0:16:0: Processor Areca RAID controller R001 PQ: 0 ANSI: 0 cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: Areca Model: ARC-1200-VOL#00 Rev: R001 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi0 Channel: 00 Id: 16 Lun: 00 Vendor: Areca Model: RAID controller Rev: R001 Type: Processor ANSI SCSI revision: 00 Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST1000NM0033-9ZM Rev: SN04 Type: Direct-Access ANSI SCSI revision: 05 lspci | grep -i raid 03:00.0 RAID bus controller: Areca Technology Corp. ARC-1200 2-Port PCI-Express to SATA II RAID Controller #查看版本 cat /etc/system-release cat /etc/issue #CentOS 7下不会再输出版本 # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l #查看网卡 ip addr ip link ip -s link ifconfig #CentOS 7下,默认不再安装此工具 #本机DNS配置,配置文件/etc/resolv.conf options timeout:1 attempts:1 rotate nameserver 192.168.1.1 nameserver 8.8.8.8 #CentOS 7下网卡命名发生了变化,以前的ethX这种命名不见 #如果要改回来,需要修改/etc/default/grub文件 #添加net.ifnames=0 biosdevname=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto vconsole.font=latarcyrheb-sun16 vconsole.keymap=us net.ifnames=0 biosdevname=0 rhgb quiet" GRUB_DISABLE_RECOVERY="true" #修改网卡配置信息(注意网卡名称) #CentOS 7中除了名称改变,其它几乎是一致的 vi vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.168 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no NAME=eno16777736 UUID=7f9bd132-fb60-4ec8-8021-734f15dc0ff2 DEVICE=eno16777736 ONBOOT=yes #CentOS 7 主机名相关状态(相关信息可以通过hostnamectl完成) [root@localhost ~]# hostnamectl status Static hostname: localhost.localdomain Icon name: computer Chassis: n/a Machine ID: 2c3cda62de28434a894128e7ade1627b Boot ID: bd5d076f8a8c42358fe8ef4dbc6f0929 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-229.el7.x86_64 Architecture: x86_64 #查看主机名 hostname #CentOS 7中修改主机名 vi /etc/hostname localhost.localdomain #CentOS 6.x中(CentOS中不存在/etc/sysconfig/network) vi /etc/sysconfig/network NETWORKING=yes #ipv4网络 NETWORKING_IPV6=no #ipv6网络 HOSTNAME=vfeelit #主机名称 #CentOS 7时间相关 [root@localhost ~]# timedatectl Local time: Sat 2015-11-07 22:38:42 PST Universal time: Sun 2015-11-08 06:38:42 UTC RTC time: Sun 2015-11-08 06:38:42 Timezone: America/Los_Angeles (PST, -0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: no Last DST change: DST ended at Sun 2015-11-01 01:59:59 PDT Sun 2015-11-01 01:00:00 PST Next DST change: DST begins (the clock jumps one hour forward) at Sun 2016-03-13 01:59:59 PST Sun 2016-03-13 03:00:00 PDT # 列出所有时区 timedatectl list-timezones # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间 timedatectl set-local-rtc 1 # 设置系统时区为上海 timedatectl set-timezone Asia/Shanghai # 也可以使用如下方法(CentOS 6.x中使用的方法) cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ##同步时间(yum install ntp) ntpdate asia.pool.ntp.org ##查看当前时区的时间 date -R Sun, 08 Nov 2015 14:45:07 +0800 #本地设置(修改为中文) vi /etc/locale.conf ANG="zh_CN.UTF-8" #关闭Selinux vi /etc/selinux/config #关闭Selinux后可能无法开机,Ctrl+F1切换终端可以查看,编辑/etc/grub2.conf #在语言设置之后添加selinux=0 #赋予rc.loal执行权限(CentOS 6.x中不需要) ls -lha /etc/rc.d/rc.local -rw-r--r--. 1 root root 473 3月 6 2015 /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local #查看当前运行级别(runlevel) cat /etc/systemd/system/default.target #修改运行级别(先删除/etc/systemd/system/default.target符合链接) rm -f /etc/systemd/system/default.target #运行级别3 ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target #运行级别5 ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target #去掉一批自启动服务(systemctl list-unit-files|grep enabled) #如果要停止当期服务,使用systemctl stop xxx systemctl disable auditd.service systemctl disable avahi-daemon.service systemctl disable firewalld.service systemctl disable cups.service systemctl disable irqbalance.service systemctl disable iscsi.service systemctl disable kdump.service systemctl disable lvm2-monitor.service systemctl disable mdmonitor.service systemctl disable microcode.service systemctl disable multipathd.service systemctl disable NetworkManager.service systemctl disable postfix.service systemctl disable tuned.service systemctl disable remote-fs.target systemctl disable dm-event.socket systemctl disable iscsid.socket systemctl disable iscsiuio.socket systemctl disable lvm2-lvmetad.socket #安装 #使用系统默认安装的Chrony服务即可(http://blog.ifeeline.com/2554.html) #1、ntpd.service #时间同步,不需要开机启动 2、nscd.service #缓存(默认没有DNS缓存) 有提供passwd, group, hosts, services,这里主要使用hosts vi /etc/nscd.conf # logfile /var/log/nscd.log threads 8 max-threads 128 server-user nscd # stat-user somebody debug-level 5 # reload-count 5 paranoia no # restart-interval 3600 enable-cache hosts yes positive-time-to-live hosts 5 negative-time-to-live hosts 10 suggested-size hosts 211 check-files hosts yes persistent hosts yes shared hosts yes max-db-size hosts 33554432 3、sysstat.service #系统性能 4、supervisord.service #进程监控
配置第三方YUM源:
#默认 yum repolist base/7/x86_64 CentOS-7 - Base extras/7/x86_64 CentOS-7 - Extras updates/7/x86_64 CentOS-7 - Updates ###### #安装epel,这个软件包,默认被extras收录,可以直接yum安装 yum install #也可以手动安装 wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm rpm -ivh epel-release-7-5.noarch.rpm #确认 yum repolist base/7/x86_64 CentOS-7 - Base epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 extras/7/x86_64 CentOS-7 - Extras updates/7/x86_64 CentOS-7 - Updates ###### ##-------ius源,它依赖epel(yum install epel-release) #https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/repoview/ #来自这个源的软件包,习惯加一个u wget https://rhel7.iuscommunity.org/ius-release.rpm rpm -ivh ius-release.rpm ##--------Webtatic源,也依赖epel(yum install epel-release),这是一个理想的php(5.4-5.6,7),nginx的RPM源 #http://repo.webtatic.com/yum/el7/x86_64/RPMS/ #来自这个源的软件包,习惯加一个w wget https://mirror.webtatic.com/yum/el7/webtatic-release.rpm rpm -ivh webtatic-release.rpm #安装PHP yum install php71w-bcmath.x86_64 php71w-cli.x86_64 php71w-common.x86_64 php71w-fpm.x86_64 php71w-gd.x86_64 php71w-mbstring.x86_64 php71w-mcrypt.x86_64 php71w-mysqlnd.x86_64 php71w-opcache.x86_64 php71w-pdo.x86_64 php71w-pecl-apcu.x86_64 php71w-pecl-mongodb.x86_64 php71w-pecl-redis.x86_64 php71w-pgsql.x86_64 php71w-process.x86_64 php71w-recode.x86_64 php71w-soap.x86_64 php71w-tidy.x86_64 php71w-xml.x86_64 php71w-intl.x86_64 php71w-devel.x86_64 #安装PHP后修改对应文件权限 find . -user apache /var/log/php-fpm #要改 /var/cache/httpd /var/cache/httpd/proxy /var/lib/dav /run/httpd/htcacheclean find . -group apache /usr/sbin/suexec /var/cache/httpd /var/cache/httpd/proxy /var/lib/dav /var/lib/php/wsdlcache #要改 /var/lib/php/session #要改 /run/httpd /run/httpd/htcacheclean ##--------remi源,也依赖epel(yum install epel-release) ##Remi源可以安装多个不同版本的PHP,而且扩展比较齐全,对于单一的服务部署,推荐使用Webtatic源 ##否则可以用Remi源,安装完成后会自动添加服务管理脚本 /lib/systemd/system/php**-php-fpm.service wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7.rpm ## 安装完成后,会对应多个仓库 -rw-r--r-- 1 root root 456 3月 21 06:28 remi-php54.repo -rw-r--r-- 1 root root 1.3K 3月 21 06:28 remi-php70.repo -rw-r--r-- 1 root root 1.3K 3月 21 06:28 remi-php71.repo -rw-r--r-- 1 root root 1.3K 3月 21 06:28 remi-php72.repo -rw-r--r-- 1 root root 2.6K 3月 21 06:28 remi.repo -rw-r--r-- 1 root root 750 3月 21 06:28 remi-safe.repo 如果希望把某个版本作为主版本(就是安装到/usr/bin等目录),可以使用yum --enablerepo=remi-php71 install ****, 否则将独立安装。 // PHP 7.1 yum --enablerepo=remi install php71-php php71-php-bcmath php71-php-cli php71-php-common php71-php-devel php71-php-fpm php71-php-gd php71-php-intl php71-php-json php71-php-mbstring php71-php-mcrypt php71-php-mysqlnd php71-php-opcache php71-php-pdo php71-php-pecl-apcu php71-php-pecl-apcu-devel php71-php-pecl-crypto php71-php-pecl-igbinary php71-php-pecl-igbinary-devel php71-php-pecl-imagick php71-php-pecl-imagick-devel php71-php-pecl-mongodb php71-php-pecl-uuid php71-php-pecl-zip php71-php-pgsql php71-php-process php71-php-recode php71-php-soap php71-php-tidy php71-php-xml php71-php-xmlrpc php71-php-pecl-amqp php71-php-pecl-redis4 php71-php-pecl-swoole2 php71-php-pecl-uploadprogress php71-php-phalcon3 // PHP 5.4 // php54-php-pecl-swoole2 php54-php-phalcon3无对应 yum --enablerepo=remi install php54-php php54-php-bcmath php54-php-cli php54-php-common php54-php-devel php54-php-fpm php54-php-gd php54-php-intl php54-php-json php54-php-mbstring php54-php-mcrypt php54-php-mysqlnd php54-php-opcache php54-php-pdo php54-php-pecl-apcu php54-php-pecl-apcu-devel php54-php-pecl-crypto php54-php-pecl-igbinary php54-php-pecl-igbinary-devel php54-php-pecl-imagick php54-php-pecl-imagick-devel php54-php-pecl-mongodb php54-php-pecl-uuid php54-php-pecl-zip php54-php-pgsql php54-php-process php54-php-recode php54-php-soap php54-php-tidy php54-php-xml php54-php-xmlrpc php54-php-pecl-amqp php54-php-pecl-redis4 php54-php-pecl-uploadprogress // Remi源安装的配置放入到/opt/remi/php**/root/, 配置安装到了/etc/opt/remi/php**/(注:PHP5.5以下版本,配置在安装目录) // 添加服务启动脚本 cat php71-php-fpm.service [Unit] Description=The PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=notify EnvironmentFile=/etc/opt/remi/php71/sysconfig/php-fpm ExecStart=/opt/remi/php71/root/usr/sbin/php-fpm --nodaemonize ExecReload=/bin/kill -USR2 $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target ###### ##为了避免意外更新,改为默认不启用 vi /etc/yum.repos.d/ius.repo #把ius的enable改为0 vi /etc/yum.repos.d/webtatic.repo #把webtatic的enable改为0 vi /etc/yum.repos.d/remi.repo #remi容器默认enable改为0 ####### ##查看软件包的通用方法(先搜索,后安装) yum repolist #查看启用仓库 yum --enablerepo=ius info php56u.x86_64 #查看某个源中的具体软件包信息 yum --disablerepo="*" --enablerepo="epel" list available | less #列出所有 yum --disablerepo="*" --enablerepo="ius" search php #源中搜索 yum install --enablerepo="ius" php56u.x86_64 #安装具体软件包
安装MySQL:(http://devdocs.magento.com/guides/v2.0/install-gde/prereq/mysql.html#instgde-prereq-mysql-centos)
#安装源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm #从源安装MySQL yum -y install mysql-server #MySQL初始化 mysql_secure_installation #开启服务 systemctl start mysqld.service
————————————————————–
CentOS 7.X的如下变化最让人不习惯:
一、CentOS的Services使用了systemd来代替sysvinit管理
systemd的服务管理程序:
systemctl是主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。
直接运行systemctl可以列出正在运行的服务状态:
[root@vfeelit ~]# systemctl UNIT LOAD ACTIVE SUB DESCRIPTION proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System sys-devices-pl...serial8250-tty-ttyS0.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS0 sys-devices-pl...serial8250-tty-ttyS1.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS1 sys-devices-pl...serial8250-tty-ttyS2.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS2 sys-devices-pl...serial8250-tty-ttyS3.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS3 sys-devices-vb...728-block-xvdb-xvdb1.device loaded active plugged /sys/devices/vbd-51728/block/xvdb/xvdb1 sys-devices-vbd\x2d51728-block-xvdb.device loaded active plugged /sys/devices/vbd-51728/block/xvdb sys-devices-vb...768-block-xvda-xvda1.device loaded active plugged /sys/devices/vbd-768/block/xvda/xvda1 sys-devices-vbd\x2d768-block-xvda.device loaded active plugged /sys/devices/vbd-768/block/xvda sys-devices-vif\x2d0-net-eth0.device loaded active plugged /sys/devices/vif-0/net/eth0 sys-devices-vif\x2d1-net-eth1.device loaded active plugged /sys/devices/vif-1/net/eth1 sys-module-configfs.device loaded active plugged /sys/module/configfs sys-subsystem-net-devices-eth0.device loaded active plugged /sys/subsystem/net/devices/eth0 sys-subsystem-net-devices-eth1.device loaded active plugged /sys/subsystem/net/devices/eth1 -.mount loaded active mounted / ## systemd-cgls树形方式展示 [root@vfeelit ~]# systemd-cgls ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 23 ├─user.slice │ └─user-0.slice │ └─session-5468.scope │ ├─2837 sshd: root@pts/0 │ ├─2845 -bash │ ├─3003 systemd-cgls │ └─3004 systemd-cgls └─system.slice ├─php-fpm.service │ ├─ 2821 php-fpm: pool www │ ├─ 2916 php-fpm: pool www │ ├─ 2972 php-fpm: pool www │ ├─32313 php-fpm: master process (/etc/php-fpm.conf │ ├─32316 php-fpm: pool www │ ├─32317 php-fpm: pool www │ ├─32318 php-fpm: pool www │ ├─32319 php-fpm: pool www │ ├─32320 php-fpm: pool www
如何启动/关闭、启用/禁用服务
启动一个服务:systemctl start postfix.service
关闭一个服务:systemctl stop postfix.service
重启一个服务:systemctl restart postfix.service
显示一个服务的状态:systemctl status postfix.service
在开机时启用一个服务:systemctl enable postfix.service
在开机时禁用一个服务:systemctl disable postfix.service
查看服务是否开机启动:systemctl is-enabled postfix.service; echo $?
查看已启动的服务列表:systemctl list-unit-files | grep enabled
启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants/里,建立/usr/lib/systemd/system里面对应服务配置文件的软链接;禁用服务就是删除此软链接。(这种搞法非常常见)
[root@vfeelit multi-user.target.wants]# pwd /etc/systemd/system/multi-user.target.wants [root@vfeelit multi-user.target.wants]# ls -lah crond.service -> /usr/lib/systemd/system/crond.service nginx.service -> /usr/lib/systemd/system/nginx.service nscd.service -> /usr/lib/systemd/system/nscd.service ntpd.service -> /usr/lib/systemd/system/ntpd.service php-fpm.service -> /usr/lib/systemd/system/php-fpm.service rsyslog.service -> /usr/lib/systemd/system/rsyslog.service sshd.service -> /usr/lib/systemd/system/sshd.service supervisord.service -> /usr/lib/systemd/system/supervisord.service sysstat.service -> /usr/lib/systemd/system/sysstat.service
CentOS 6.x中也是如此,但是语法已经不一样了。
二、修改系统运行级别
切换到运行级别
systemd使用比sysvinit的运行级更为自由的target替代。第3运行级用multi-user.target替代。第5运行级用graphical.target替代。runlevel3.target和runlevel5.target分别是指向 multi-user.target和graphical.target的符号链接。
可以使用下面的命令切换到“运行级别3 ”:
systemctl isolate multi-user.target或systemctl isolate runlevel3.target
可以使用下面的命令切换到“运行级别5 ”:
systemctl isolate graphical.target或systemctl isolate runlevel5.target
改变默认运行级别
systemd使用链接来指向默认的运行级别。在创建新的链接前,可以通过下面命令删除存在的链接: rm /etc/systemd/system/default.target
默认启动运行级别3 :
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
默认启动运行级别5 :
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
systemd不使用/etc/inittab文件。
查看当前运行级别
旧的runlevel命令在systemd下仍然可以使用。可以继续使用它,尽管systemd使用 ‘target’ 概念(多个的 ‘target’ 可以同时激活)替换了之前系统的runlevel。等价的systemd命令是systemctl list-units –type=target
其他配置工具:
1、setup和ntsysv工具还是保留了,但是功能已大大减弱,以前ntsysv工具可以控制所有系统服务的自启动,现在只能控制少部分服务。
2、/etc/resolv.conf这个DNS配置文件没变。
3、/etc/sysconfig/network-scripts/ifcfg-ens192网卡配置文件名字和一些选项有所变化。
4、引导方式改用grub2引导,grub2有如下特点:1、模块化设计;2、支持多体系硬件架构;3、支持国际化多语言;4、独立内存管理;5、支持脚本语言。
最后再稍作对比总结,三个基本任务,查看启动的服务,设置服务是否开机启动,当期关闭和启动服务
查看启动的服务
chkconfig –list -> systemctl list-unit-files|grep enabled(/etc/systemd/system/multi-user.target.wants)
设置服务是否开机启动
chkconfig –levels 35 xxxx off -> systemctl enable postfix.service
当期关闭和启动服务
service xxx stop -> systemctl start postfix.service