网关:目标网络和当前路由器(当前主机)智联,网关IP=接口IP,不直连,网关IP=下一个路由器的临近接口IP
目标网络ID | netmask | 接口 | 网关 | |
192.168.1.3 | 255.255.255.0 | eth3 | 主机路由 | |
192.168.1.0 | 255.255.255.0 | eth0 | 192.168.1.254 | 网络路由 |
192.168.0.0 | 255.255.0.0 | eth1 | 192.168.2.254 | 网络路由 |
0.0.0.0 | 0.0.0.0 | eth2 | 192.168.3.254 | 默认路由 |
DHCP:动态主机配置协议DHCP
dhcp discover :由客户端发送广播,请求IP地址
dhcp offer:有dhcp服务器发送广播,告知全网络我选择了谁向我提供IP地址
dhcp ack:有指定的dhcp服务器向客户端提供信息
网络配置
CentOs6中修改网卡名称方法
1.vim /etc/udev/rules.d/70-persistent-net.rules
将其中对应要修改的网卡最后的NAME=改为所需要的名称,相匹配的网关
2.ethtool -i 网卡名 查看驱动模块名(不必要)
3.modprobe -r e1000 卸载模块
4.modprobe e1000 重新加载模块
5.在/etc/sysconfig/network-scripts目录中将原网卡的配置文件改文件名,使其格式为ifcfg-网卡名
没有文件就复制一个,然后改好名字
6.修改上述配置文件,将其中的DEVICE=改为网卡名
DEVICE
ONBOOT 网络服务启动时是否自动启用该网卡
MN_CONTROLLDE
BOOTPROTO=static(手动配置) 或 dhcp(自动获取)
HWADDR 网卡地址
若没有BOOTPROTO,需有IPADDR、NETMASK
7. service network restart (重新启动网络)
配置网络接口
ifconfig (立即生效) 显示所有已激活的网卡信息
ifconfig 网卡名 查看指定网卡信息
ifconfig -a 显示所有网卡信息,无论是否激活
ifconfig 网卡名 up/down 激活/禁用指定网卡
路由管理命令
route 显示default,网关解析成域名
route -n 网关为IP地址
route add -net(一个网段)|-host(IP地址) gw 增加一个地址
route del 删除
修改主机名
centos6及之前:
重启后有效:vim /etc/sysconfig/network
当前有效:hostname xxxx.com
centos7:
重启后有效:vim /etc/hostname
当前有效:hostname xxxx.com
当前和重启均有效:hostnamectl set-hostname xxx.com
查看系统信息 hostnamectl status
修改网卡字符工具
centos6:system-config-network
centos7:nmtui
网络配置文件
/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE:此配置文件应用到的设备
HWADDR:对应的设备的MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
NM_CONTROLLED: NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”
ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型;常见有的Ethernet, Bridge
UUID:设备的惟一标识
IPADDR:指明IP地址
NETMASK:子网掩码
GATEWAY: 默认网关
DNS1:第一个DNS服务器指向
DNS2:第二个DNS服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
bond绑定
bond:将多块网卡绑定同一个IP地址对外提供服务,通过bonding虚拟一块网卡,不是直接设置同一个IP地址
工作模式
bond0 按顺序从属接口
bond1 只有一个从属接口被激活
bond3 所有的从属接口传送数据包(广播效果,发一个包回应俩个包)
bond 配置
cd /etc/sysconfig/network-scripts/(bonding设备的配置文件)
vim ifcfg-bond0
DEVICE=bond0
BONDING_OPTS="mode=1 miimon=100
(miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路)
IPADDR=192.168.25.100
PREFIX=24
vim ifcfg-eth3
DEVICE=eth3
MASTER=bond0
SLAVE=yes
vim ifcfg-eth4
DEVICE=eth4
MASTER=bond0
SLAVE=yes
/etc/init.d/NetworkManager stop
/etc/init.d/network restart
cat /proc/net/bonding/bond0 查看bond0状态
cat /sys/class/net/bond0/bonding/mode 查看bond0模式
删除bond0
ifconfig bond0 down
rmmod bonding
CentOs7中不能补全命令,安装bash-completion
ping
ping x.x.x.x 检测主机是否在线
ping -c1 只ping一个包
ping -W1 错误后仅重试1s
ping -s 60000 一个包大小
ping -f 不显示ping的结果
lftp
lftp -o 下载到指定目录
put 上传
lftpget 下载命令
wget
wget
-P 指定下载目录,默认下载到运行程序的当前目录
-O 指定文件名,默认与原文件名一致
- -limit-rate= XX(M,K,G) 指定传输速率
-c 中断的下载可以断点续传,如不加-c,将重新下载
-q 静默下载
links
--dump 只看文字
--source 看源码
ps
ps:查看进程信息(process state) Linux系统各进程的相关信息均保持在/proc/PID目录下,支持三种选项 UNIX BSD GNU
BSD方式
a 所有用户在所有终端上运行的前台进程
x 当前用户运行的所有进程(包括前台进程和后台daemon)
ax 所有用户运行的所有进程
aux 所有用户运行的所有进程,结果中显示用户名
f 显示父子进程关系
-C 用进程名进行过滤
axo配合
o 自定义输出列
%cpu %mem pid uid gid cmd comm tty(显示终端名,如为?,表示daemon后台进程) ruser(命令的发起人) euser(命令的真正执行人) state
k 排序或--sort
VSZ:虚拟内存集,线性内存 表示操作系统承诺内存集
RSS:常驻内存集 实际分配内存
UNIX方式
-e 显示所有进程
-f 显示完整格式
-ef 以完整格式显示所有进程
-eF 以更完整格式显示所有进程
-efH 显示父子进程关系
-eo 自定义显示结果,如下
%cpu,%mem,pid,nice,pri,stat,comm
nice值
-20~19 数字越小,优先级越高
renice -n # (-20~19) pid
nice -n #(-20~19) -# command
查看nice值方式
ps axo ni[ce]
pgrep
pgrep 按预定义的模式
-u UID/USERNAME 基于执行程序的用户名进行搜索
-l 显示的结果中增加进程名
-t 终端名
-P 查看子进程
pidof
进程名 查询对应进程名的PID
uptime
显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、 5、 10分钟的平均负载,一般不会超过1)
vmstat 监控优化命令
vmstat各项含义
procs | memory | swap | io(硬盘) | system | cpu |
r(running):可运行(正运行或等待运行)的进程个数 | swpd:当前虚拟内存的已使用空间 | si:表示内存从swap读入的总量 | bi:表示内存从硬盘读入的总量 | in(interrupts):每秒中断的速率 | us(user):用户空间时间 |
b(blocked):处于不可中断睡眠状态的进程个数 | free:物理内存的剩余空间,直至不够用时,才会使用虚拟内存 | so:表示从内存写出到swap的总量 | bo:表示从内存写出到硬盘的总量 | cs(context swith):进程切换速率 | sy(system):内核空间,系统空间 |
buffer:用于buffer的内存总量 (buffer 缓冲,平衡速度) | id(ldle):空闲时间 | ||||
cache:用于cache的内存总量 (cache 快取,一段一段存,减缓速度不匹配) | wa(wait):等待时间 | ||||
st(stolen):被虚拟机偷走的时间 |
vmstat -s 详细查看内存信息
dstat
系统资源统计 替代 vmstat iostat(统计cpu和设备io信息)
-c: 显示cpu相关信息
-C #,#,...,total
-d: 显示disk(磁盘读写状态)相关信息
-D total,sda,sdb,...
-g:显示page相关统计数据
-m: 显示memory(内存状态)相关统计数据
-n: 显示network相关统计数据
-p: 显示process相关统计数据
-r: 显示io请求相关的统计数据
-s: 显示swapped相关的统计数据
--tcp
--udp
--unix
--raw
--socket
--ipc
--top-cpu:显示最占用CPU的进程
--top-io: 显示最占用io的进程
--top-mem: 显示最占用内存的进程
--top-latency: 显示延迟最大的进
pmap
进程对应的内存映射
pmap pid
pmap -x pid(内容更多)
ls -l /proc/40052/fd |wc -l
通过查看进程文件描述符的数量是否增长来判断是否有内存泄露的问题
kill
查看信号,进程号
-0 无作为,可以用来单纯判断进程是否运行.
-1 强制进程重读配置文件
-2 中止正在运行的进程;相当于Ctrl+c
-3 相当于ctrl+\
-9 强制杀死正在运行的进程
-15 终止正在运行的进程 (默认)\
killall 按进程名称查看
pidof 查询进程号
pstree 树状形展示进程
pkill
是根据名称或其他属性来查询进程或给进程发信号的
-u 用户名 杀死指定用户所运行的所有进程
pkill -t pts/1 杀死指定终端上运行的所有进程
进程的前后台 之前在讲脚本的文章里提到过
ctrl+z 将运行在前台的进程暂停 或 kill -19 PID
bg 将在当前终端上暂停的进程,放入后台继续运行 或kill -18 PID
fg 将在当前终端上暂停的或在当前终端上后台运行的进行,放入前台继续运行
使进程不再依附于终端在后台运行
nohup command &> /dev/null
screen; command (可以切回前台)
(command&)
jobs 查看当前终端所有作业
并行运行多条命令
三种方法
1. vim all.sh 只能是脚本
sh1&
sh2&
shn&
2.(sh1&);(sh2&) 这俩个可以脚本也可以是命令
3.{sh1&sh2&sh3}
计划任务
at 选项 时间
at -l = atq 列出等待进行的任务
at -c 查看指定序号任务的详细信息
at -v 显示版本号
at -d = atrm 删除
at 时间 -f 文件 写入文件
at -m 无输出的命令也给root发邮件 看命令执行
有输出的命令自动发邮件
配置at的方式
1. at 指定的时间
需要做的任务内容
ctrl + d 退出保存
2. 使用管道方式定制
echo |at 时间
3. at << EOF
输入所需要完成的任务内容
>>EOF
at 时间 指定任务进行时间
at 10:00 2018-04-01
依赖于atd服务 需开启
systemctl start atd
/etc/at.deny 限制at配置计划任务
当仅/etc/at.deny 存在时(默认)写入deny的用户不能配置
当/etc/at.allow存在时/etc/at.deny失效,只有写在allow中的用户才能配置at
当/etc/at.allow及/etc/at.deny都不存在时,仅有root才能配置at
crontab 周期性的计划任务(系统级)
/etc/crontab 文件制定,多项以逗号间隔
crontab 命令
-l 列出等待进行的任务
-e 编辑
-r 删除任务的有关文件所有
-i -r, 删除时询问
-u 编辑用户
原文:http://blog.51cto.com/13572810/2090729