Centos开启启动服务SystemdSystemctl支持的服务类型使用命令查看systemctl支持的类型如果无扩展名，systemctl默认把扩展名当做 .service。挂载点、设备名称完成自动转化为对应的单元执行df -hsystemctl list-units | grep 'boot'Systemd基本命令Systemd单元管理命令查看所有启动的服务systemctl list -units --type=service利用systemctl 停掉挂载单位systemctl stop boot.mount Systemd优势支持并行启动、显著提高开机启动效率Centos7关机只关闭正在运行的服务（Ceontos6没有开启的服务也会进行一次操作）对于服务的管理不需要基于init.d下的脚本Systemd解决原有模式的缺陷（Service,Syslog）Systemd命令语法Systemd中文手册：http://www.jinbuguo.com/systemd/systemctl.html只查看systemd所管理服务的单元systemctl --type=service list-unit-filesSystemd之target涵盖了启动级别的概念理解为目标或者租target间可以相互关联Centos6、7查看系统运行级别命令 runlevelCentos7用systemctl查看系统运行级别命令systemctl get-defaultCentos7改变系统运行级别、重启生效reboot systemctl set-default multi-user.target Centos6永久性修改启动级别需要更改：/etc/inittab设置系统启动级别依赖关系命令：systemctl list-dependencies target名称查看当前系统级别服务依赖关系systemctl list-dependencies查看程序在系统里的有哪些运行级别systemctl --reverse list-dependencies php-fpm.servicecentos7服务管理编写单元文件-服务管理软件包安装的单元：/usr/lib/systemd/system/——-建议自定义服务单元放在/usr/lib/systemd/system系统管理员安装的单元：/etc/systemd/system/先用rpm命令查看安装nginx软件所有文件的位置查找.servicerpm -ql nginxcat /usr/lib/systemd/system/nginx.service也可以用systemctl cat nginx服务单元文件配置# systemctl cat nginx # /usr/lib/systemd/system/nginx.service [Unit] Description=nginx - high performance web server 描述信息 Documentation=http://nginx.org/en/docs/ 文档信息所在 After=network-online.target remote-fs.target nss-lookup.target 在什么之后、在network-online ..这几个启动之后 Wants=network-online.target [Service] Type=forking 服务管理类型 PIDFile=/var/run/nginx.pid 进程pid文件 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf 启动前执行命令 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf 启动命令 ExecReload=/bin/kill -s HUP $MAINPID 重启命令 ExecStop=/bin/kill -s TERM $MAINPID 停止命令 [Install] WantedBy=multi-user.targetUnit服务依赖关系1、单元A要求单元B在A启动之前运行B是服务的单元文件[Unit] Requires=B After=BWants虽然需要这个单元、但是如果这个单元没有启动，并不影响A的启动Requires 必须需要B单元先启动、如果没启动A启动不了Service服务启动类型Type根据nginx自定义脚本注意：service脚本 系统中是存在两个文件夹内、二选一[scode type="share"] 1、/etc/systemd/system/ 2、/usr/lib/systemd/system/[/scode][Unit] Description=this is qidong server Documentation=blog.solo90.com After=network-online.target Wants=network-online.target [Service] Type=simple PIDFile=/var/run/qidong.pid ExecStart=/bin/sh /home/qidong/qidong.sh ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.targetqidong.sh#!/bin/bash echo $$>/var/run/qidong.pid while : do echo "Hi my name is qidong,"$(date) >> /tmp/qidong.log sleep 1 done$$ 代表获取pid运行systemctl daemon-reload重载系统服务然后执行 systemctl enable qidong.service 开机启动服务即可Systemd定时任务Timers可用来替换系统上的crontab,定时控制服务事件(.service文件)指定新定时任务=service服务单元+timer定时单元Timer定时单元分类：单调定时器从一个时间点过一点时间后激活定时任务举例：[Timer] OnBootSec=15min OnUnitActiveSec=1wTimer实时定时器通过日历事件激活定时任务。使用OnCalender=方式来定义实时定时器。OnCalendar=--* 00:00:00举例：[Timer] OnCalendar= Fri 2012-11-12 11:12:13 等价于 [Timer] OnCalendar= 2012-11-23 11:12:13实例演示定义定时任务定义nginx.timer[Unit] Description=this is qidong timer Documentation=blog.solo90.com [Timer] Unit=nginx.service OnCalendar=2018-7-16 20:25:00 [Install] WantedBy=multi-user.target执行systemctl start nginx.timer查看所有定时timer任务systemctl list-timers[root@localhost.localdomain /usr/lib/systemd/system] # systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES 一 2018-07-16 18:46:36 CST 22h left 日 2018-07-15 18:46:36 CST 1h 33min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service 一 2018-07-16 20:25:00 CST 24h left n/a n/a nginx.timer nginx.service 2 timers listed. Pass --all to see loaded but inactive timers, too.日志管理JournalJournal:systemd自己提供的日志工具和服务配置文件：/etc/systemd/journald.confsystemctl list-units | grep journa日志级别查看系统日志journalctlJournalctl命令使用Journalctl [OPTIONS…] [MATCHES….]journalctl 显示所有信息notice或warning以粗体显示，红色显示error级别以上信息查看系统最后20行记录journalctl -n 20journalctl -f 和tail -f 类似 实时查看最后输出信息查看日志级别查看err和alert级别的日志journalctl -p err..alertjournalctl -p err查看服务单元的日志journalctl -u sshd.service
系统基础变化核心服务Centos7修改主机名临时修改主机名命令 hostname xxxx 重启失效永久修改主机名\centos6.8vim /etc/sysconfig/network在centos7中 同样有/etc/sysconfig/network文件修改不生效vim /etc/hostname修改后生效Centos7目录结构发生的改变centos7执行命令查看目录cd /;ls ./ 意思是两个目录一起执行Centos7时区和时间时区修改命令查看时间 date查看时区 date -Rmv /etc/localtime /etc/localtime_bak cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtimecentos7进行修改timedatectl执行命令timedatectl set-timezone Asia/Tokey设置时区 中间可用Tab键进行命令提醒设置主板时间和本地时间一致timedatectl set-local-rtc 1同步网络时间若未安装ntpdate命令，由以下命令进行安装： yum install -y ntpdate[root@localhost ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime [root@localhost ~]# ntpdate cn.pool.ntp.org修改设置Linux服务器时区，用命令 tzselect，选择5，回车Centos操作系统网卡命名Centos6常见网络接口命名eth0、eth1、eth2 或戴尔服务器 em0、em1、em2Centos7网络接口变化把Centos7 、ens33这种命名方式关掉先打开文件# vim /etc/sysconfig/grub 1 GRUB_TIMEOUT=5 2 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 3 GRUB_DEFAULT=saved 4 GRUB_DISABLE_SUBMENU=true 5 GRUB_TERMINAL_OUTPUT="console" 6 GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" 7 GRUB_DISABLE_RECOVERY="true"在第6行中加入# vim /etc/sysconfig/grub 1 GRUB_TIMEOUT=5 2 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 3 GRUB_DEFAULT=saved 4 GRUB_DISABLE_SUBMENU=true 5 GRUB_TERMINAL_OUTPUT="console" 6 GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap net.ifnames=0 biosdevname=0 rhgb quiet" 7 GRUB_DISABLE_RECOVERY="true"查看网卡命令# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:15:5d:fd:46:d6 brd ff:ff:ff:ff:ff:ff inet 121.127.252.9/24 brd 121.127.252.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::215:5dff:fefd:46d6/64 scope link valid_lft forever preferred_lft forever网络接口变化图在Centos7.4中默认是没有ifconfig命令的、如果需要、则需要安装yum install net-tools。Centos7.4中则用ip命令、在阿里云镜像中是带有ifconfigIp命令使用常见场景1、查看、修改ip地址信息。2、操作控制网络接口。3、配置路由信息。4、策略路由查看网卡 ip a 用ip命令新增一个网卡别名ip a add 192.168.8.149/24 dev eth0:2删除 ip a del 192.168.8.149/24 dev eth0:2 关闭网卡设备、适用多网卡关闭ip link set dev eth0 down启用网卡ip link set dev eth0 upCentos7参数补全参数补全需要安装bash-completionyum install bash-completion安装完成后、需要退出后在登录进来才可以进行参数补全Centos系统内存Buffers:存储速度不同步的设备或优先级不同的设备之间传输数据的缓存区域；Cached:CPU读取数据文件缓存的一个存储缓存区域。当程序需要时，可以回收Cache和Buffers来提供给应用程序使用。什么时候操作系统内存有问题操作系统内存耗尽，将触发oom机制，导致系统自动重启不要期待swap能解决内存使用问题(monggoDb这种数据库是预留内存的、在现今设备情况下、容易交换的磁盘上)。在配置较高的情况下不建议设置swap内存。当内存使用到60%-80%,需要重视free命令详解free -m 是以MB单位查看内存的使用Centos6命令freeCentos7命令freeCentos7中ss命令使用ss命令比netstat执行快netstat命令详解netstat <选项>选项-a或--all：显示所有连线中的Socket； -A<网络类型>或--<网络类型>：列出该网络类型连线中的相关地址； -c或--continuous：持续列出网络状态； -C或--cache：显示路由器配置的快取信息； -e或--extend：显示网络其他相关信息； -F或--fib：显示FIB； -g或--groups：显示多重广播功能群组组员名单； -h或--help：在线帮助； -i或--interfaces：显示网络界面信息表单； -l或--listening：显示监控中的服务器的Socket； -M或--masquerade：显示伪装的网络连线； -n或--numeric：直接使用ip地址，而不通过域名服务器； -N或--netlink或--symbolic：显示网络硬件外围设备的符号连接名称； -o或--timers：显示计时器； -p或--programs：显示正在使用Socket的程序识别码和程序名称； -r或--route：显示Routing Table； -s或--statistice：显示网络工作信息统计表； -t或--tcp：显示TCP传输协议的连线状况； -u或--udp：显示UDP传输协议的连线状况； -v或--verbose：显示指令执行过程； -V或--version：显示版本信息； -w或--raw：显示RAW传输协议的连线状况； -x或--unix：此参数的效果和指定"-A unix"参数相同； --ip或--inet：此参数的效果和指定"-A inet"参数相同。组合命令的使用netstat -an |grep 22列出所有端口 (包括监听和未监听的)netstat -a #列出所有端口netstat -at #列出所有tcp端口netstat -au #列出所有udp端口具体使用选项查看http://man.linuxde.net/netstatnetstat 命令是在linux中的/proc这个目录提取出的。把/proc目录卸载了 发现top和netstat和ss是提取不到信息的命令ss选项-h：显示帮助信息； -V：显示指令版本信息； -n：不解析服务名称，以数字方式显示； -a：显示所有的套接字； -l：显示处于监听状态的套接字； -o：显示计时器信息； -m：显示套接字的内存使用情况； -p：显示使用套接字的进程信息； -i：显示内部的TCP信息； -4：只显示ipv4的套接字； -6：只显示ipv6的套接字； -t：只显示tcp套接字； -u：只显示udp套接字； -d：只显示DCCP套接字； -w：仅显示RAW套接字； -x：仅显示UNIX域套接字。 组合、查看udp、tcp、和进程pid信息的监听端口再次组合netstat和ss查看端口对比netstat -an|grep 22ss -na sport eq :22