查看版本信息
cat /etc/redhat-release
查看内核
cat /proc/version
修改主机名
vi /etc/hostname
操作目录
查看目录
cd /;ls -l ./
查看目录下的文件数
ll /usr/bin/*|wc -l
查看进程
cd /run
cat sshd.pid
查看并修改时区
date //查看当前系统时间
date -R //查看当前时区
timedatectl //查看系统时间状态
timedatectl set-timezone Asia/Shanghai //设置为上海时区
timedatectl set-local-rtc 1 //将本地时间调整到与系统时间一致
timedatectl list-timezones //列出当前可用时区
网卡接口命令
vi /etc/sysconfig/grub //查看网卡
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 "//加入此行代码,关闭命名规则,关闭戴尔的命名规则
查看网卡与设置
ip a //查看网卡
ip a add 192.168.8.149/24 dev eth0:2 //指定网卡接口添加IP地址--2表示接口2
ip a del 192.168.8.149/24 dev eth0:2 //删除IP地址
ip link set dev eth0 down/up // 关闭/打开 eth0 网卡
修改主机IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
不同颜色代表不同意思
颜色 | 含义 |
---|---|
蓝色 | 目录 |
黑色 | 文件 |
浅蓝色 | 链接 |
红色 | 压缩包 |
绿色 | 可执行文件 |
黑底黄字 | 设备文件 |
查看config信息
ifconfig
自动补全功能
wh + (tab * 2)
什么时候操作系统内存有问题?
操作系统内存耗尽,将出发OOM机制【Out-Of-Memory】,导致操作系统重启
swap【虚拟内存】并不能解决内存问题
使用到 60% - 80%,需要重视
查看操作系统内存
top
free
free -m
不可回收部分 = free + buff/cache - available
查看端口命令
netstat -luntp
netstat -an //查看所有类型端口
netstat -an|grep 22 //只查看22端口
ss -luntp //查看当前监听的端口
Systemd的使用和管理
查看systemd支持的单元类型
systemctl -t help
如果无扩展名,systemd会默认是 服务类型( .service )
挂载点、设备会完全自动转化为对应类型
查看当前系统的挂载点
df -h
过滤挂载点
systemctl list-units |grep 'boot'
查看安装包已安装文件
rpm -ql nginx
Systemd优势
- 支持并行启动,显著提高开机启动效率
- CentOS7关机只关闭正在运行的服务
- 对于服务的管理不需要基于init.d下的脚本
- Systemd解决原有模式的缺陷【Service、Syslog】
关于targer
- 涵盖了启动级别的概念
- 理解为目标或组
- target间可以相互关联
systemctl list-dependencies //查看当前 target 服务关联树
systemctl list-dependencies [target名称] //加上名称查看该target服务下的关联树
systemctl --reverse list-dependencies vsftpd.service //查看某个服务【如vsftpd.service】的上级关联关系--反查
编写单元文件-服务管理
软件包安装的单元 /usr/lib/systemd/system/
系统管理员安装的单元 /etc/systemd/system/
服务单元文件配置
[Unit]: 单元的说明及依赖相关设置
[Service]: 定义单元的管理方式
[Install]: 定义加入到target单元中
处理服务依赖关系
单元A要求单元B在A启动之前运行
[Unit]
Requires = B
After = B
B服务的单元文件
Wants和Requires 类似但存在区别,如果后面接的服务如果没有启动,其实不会影响到这个unit本身
自定义服务单元:
1.程序准备(编写测试脚本)
cd /opt/work/
mkdir /opt/work/ //创建目录
touch /tmp/imoocc.res //输出到该文件下
vim imoocc_gen.sh //新建文件
sh imoocc_gen.sh //执行测试脚本
tail -f /tmp/imoocc.res //查看实时的脚本进程
2.加入pid
在脚本中加入 echo $$ > /var/run/imoocc_gen.pid
3.加入自定义单元(编写的服务[.service])
cd /usr/lib/systemd/system //进入该目录下
cp nginx.service imoocc_gen.service //copy一份现有文件进行修改
systemctl daemon-reload //重载
timer定时任务单元
timers 可用来替换系统上的cron,定时控制服务事件(.service文件)
制定新定时任务 = service服务单元 + timer 定时单元
分类:
- 单调定时器:从一个时间点过一段时间后激活定时任务
时间点类型 | 代表类型的时间点 |
---|---|
OnActiveSec | 以定时器启动为时间点 |
OnBootSec | 以系统启动为时间点 |
OnStarupSec | 以systemd启动为时间点 |
OnUnitActiveSec | 上次定时器任务激活为时间点 |
OoUnitInactiveSec | 上次定时器任务执行完毕的时间 |
- 实时定时器(OnCalendar)
写法 | 代表生效时间 |
---|---|
Fri 2018-11-23 11:11:11 或 2018-11-23 11:11:11 |
Fri 2018-11-23 11:11:11 |
2018-11-23 或 18-11-23 |
Fri 2018-11-23 00:00:00 |
11:11:11 | Fri 2018-11-23 11:11:11 |
11:11 | Fri 2018-11-23 11:11:11 |
hourly | * - * - * *:00:00(每小时整点执行) |
daily | * - * - * 00:00:00(每天零点) |
monthly | * - * - 01 00:00:00(每个月1号,零点执行) |
weekly | Mon * - * - * 00:00:00(每个星期一零点执行) |
* : 20 / 15 | * - * - * * : 20 / 15 : 00 (每个整点的20分、35分、50分执行) |
Wed * - * - * 17:48:00 | Wed * - * - * 17:48:00(每个星期三下午5点48分执行) |
10-15 | * - 10 - 15 00:00:00(每一年的10月15号执行) |
Timer定时任务单元
cp imoocc_gen.service imoocc_gen.timer //复制原来建好的service文件
vi imoocc_gen.timer
systemctl start imoocc_gen.timer //执行定时任务
Systemd日志管理Journal
Journal : systemd 自己提供的日志工具和服务
配置文件 : /etc/systemd/journal.conf
Sytemd -> Journal -> RAM 【./tmpfs,/run/log/journal】
日志级别
编码 | 优先级 | 严重性 |
---|---|---|
0 | emerg | 系统不可用 |
1 | alert | 必须立即采取措施 |
2 | crit | 严重状况 |
3 | err | 非严重错误状况 |
4 | warning | 警告状况 |
5 | notice | 正常但重要的事件 |
6 | info | 信息性事件 |
7 | debug | 调试级别消息 |
Journalctl //查看所有日志[粗体是err以下级别,红色是err以上级别]
journalctl [OPTIONS][MATCHES] //命令使用
journalctl -n 20 //查看最后的20行
journalctl -f //实时显示所有日志
journalctl -p err..alert //展示err至alert级别的信息
journalctl -u imoocc_gen.service //查看某个单元
journalctl -b //查看系统启动过程是否报错
journalctl --since today //查看今天的日志
journalctl --until "30 min ago" //查看截止至30min之前的日志
journalctl --since today --until "2 hours ago"//查看今天截止至两个小时之前的日志
journalctl _PID=1 //查看pid为1的日志
journalctl _UID=0
FirewallD防火墙
- CentOS7里 iptables 和 firewalld 共存
- firewalld 的底层调用的iptables,建立在iptables之上
- firewalld 在使用上比iptables更人性化
ls /usr/lib/firewalld/zones/ //Firewalld使用区域默认类型
systemctl start firewalld.service //启动
firewall-cmd --list-all //查看默认区域
firewall-cmd --list-all-zones //查看所有区域
firewall-cmd --get-active-zones //查看活跃区域
firewall-cmd --set-default-zones=home //设置默认区域
默认区域:public
种类:活跃区域(active)和非活跃区域
firewall-cmd --zone=home --change-interface=eth0 //改变区域网卡接口
firewall-cmd --zone=home --remove-interface=eth0 //移除区域网卡接口
firewall-cmd --zone=home --add-interface=eth0 //添加区域网卡接口
firewall-cmd --zone=public --add-port=21/tcp //临时性添加网卡端口21到白名单,重启失效
firewall-cmd --zone=public --add-port=21/tcp --permanent //永久性添加网卡端口21到白名单
cd /usr/lin/firewalld/services //服务
firewall-cmd --zone-public --add-service=http //临时性把http服务添加到白名单规则
firewall-cmd --zone-public --add-service=http --permanent //永久性把http服务添加到白名单规则
firewalld中区域默认规则设定
- 阻塞区域(block):任何传入的网络数据包都将被阻止
- 工作区域(work):相信网络上的其他计算机,不会损害你的计算机
- 家庭区域(home):详细网络上的其他计算机,不会损害你的计算机
- 公共区域(public):不相信网络上的任何计算机,只有选择接受传入的网络连接
- 隔离区域(DMZ):隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络链接
- 信任区域(trusted):所有网络连接都可以接受
- 丢弃区域(drop):任何传入的网络连接都被拒绝
- 内部区域(internal):信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接
- 外部区域(external):不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络链接
firewall-cmd --set-default-zone=drop //设置默认区域规则
firewall-cmd --zone=drop --change-interface=eth0 //改变接口地址
firewall-cmd --zone=trusted --add-source=192.168.1.1/21 //设置IP白名单
LSB负载均衡
负载均衡就是将访问流量根据转发策略分发到后端多台服务器
- 承载高并发、提高更高性能
- 高可靠性、实现后端服务冗灾
轮训协议 :轮询、加权轮询、加权最小连接数
弹性伸缩
自动为您调整弹性计算资源大小,以满足您业务需求的变化
优势
- 实现自动化资源调配
实现模式
- 定时模式:自定义自动伸缩发生的时间和频率
- 动态模式:基于云监控性能指标(如CPU利用率),自动增加或减少ECS实例
- 固定数量模式:保证最小台数ECS以运行实例
- 自定义模式
- 健康模式
- 多模并行模式:多种模式并行处理
自动触发任务管理
- 定时伸缩,使用定时任务
- 动态伸缩,使用报警任务
CenteOS 文件系统
XFS文件系统优势
- EXT4、XFS文件系统都是比较成熟稳定的文件系统
- XFS文件系统扩展性支持能力高于EXT4
为什么需要添加云盘
- ECS的存储空间不够
- 数据隔离
- 提升性能
vda与vda1是同磁盘分区
vda与vdb是不同磁盘
fdisk /dev/vdb //进入磁盘设备
mkfs.xfs /dev/vdb1 //根据设置格式化磁盘
mkdir logs
mount /dev/vdb1 /logs/ //将创建的目录挂载到磁盘下
GRE隧道
GRE(Generic Routing Encapsulation,通用路由封装)协议,把两个不同的VPC网络通过建立一条虚拟隧道的方式连接到一起
ip命令配置路由
ip r/route //查看路由策略
ip route add 192.168.1.0/24 via 192.168.1.253 dev eth0 //添加路由
ip route del 192.168.1.0/24 dev eth0 //删除路由
ip tunnell add tun1 mode gre remote 106.14.169.52 local 172.31.0.187 //新建隧道
GRE隧道实现VPC互连
//本机配置[华北地址段]
lsmod |grep ip_gre
modprobe ip_grp //加载ip_gre模块
lsmod |grep ip
ip tunnel add tun1 mode gre remote 106.14.137.202【远程公网IP】local 172.31.0.187【本地内网IP】
ip link set tun1 up //激活隧道
ip addr add 192.168.1.1 peer 192.168.1.2 dev tun1 //规划网段互连地址
ip route add 10.168.0.0/24【华东地址段】 dev tun1
//远端配置[华东地址段]
ip tunnel add tun1 mode gre remote 39.104.109.250 【远程公网IP】local 10.168.0.89【本地内网IP】
ip link set tun1 up //激活隧道
ip addr add 192.168.1.2 peer 192.168.1.1 dev tun1 //规划网段互连地址
ip route add 172.31.0.0/24【华北地址段】 dev tun1
---阿里云后台添加互信安全组规则