第六周

總結

A–net1–1 R1 2–net2C–3 R2 4–net3D–5 R3 6–net4–B
R1
route add -net net4/N4 ?gw ip3 ?只加此條
route add -net net3/N3 ?gw ip3 ?不加
或者
route add default ? gw ip3
R2
route add -net net1/N1 ?gw ip2
route add -net net4/N4 ?gw ip5
R3
route add -net net1/N1 ?gw ip4
route add -net net2/N2 ?gw ip4如果只是A和B通可以不加此條路由。
或者
route add default ? gw ip4
查看DNS生沒生效
cat /etc/resolv.conf
修改主機名:
[root@centos ~]#vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=centos.localdomain
修改完成后不會立即生效
[root@centos ~]#hostname centos6.localdomain (新的主機名)
[root@centos ~]#hostname
centos6.localdomain
提示符沒改退出一下就改了。
在這個文件里也可以加網關,需要重啟才能生效,如果網卡里也有網關且和這個文件的網關不同,那么網卡里的網關生效。
也可以將舊的路由表刪除,在路由表里添加進新的網關。
[root@centos ~]#vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=centos.localdomain
GATEWAY=172.20.0.1
在主機有多個網卡時加路由表的時候只加一個默認路由,如果有2個默認路由可能會使自己上不去網。
[root@centos6 network-scripts]#route -n
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags Metric Ref ? ?Use Iface
192.168.30.0 ? ?0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? 0 ? ? ?0 ? ? ? ?0 eth0
169.254.0.0 ? ? 0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 1002 ? 0 ? ? ? ?0 eth0
169.254.0.0 ? ? 0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 1003 ? 0 ? ? ? ?0 eth1
172.20.0.0 ? ? ?0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 0 ? ? ?0 ? ? ? ?0 eth1
0.0.0.0 ? ? ? ? 172.20.0.1 ? ? ?0.0.0.0 ? ? ? ? UG ? ?0 ? ? ?0 ? ? ? ?0 eth1
如何在一個網卡上配置多個IP地址
[root@centos6 network-scripts]#ifconfig eth0:1 2.2.2.2/24 ? ?eth0是物理網卡,eth0:1 相當于給物理網卡起個別名
[root@centos6 network-scripts]#ifconfig ? ? 添加IP是臨時的重啟會丟失
eth0 ? ? ?Link encap:Ethernet ?HWaddr 00:0C:29:6B:0D:B3
? ? ? ? ? inet addr:192.168.30.102 ?Bcast:192.168.30.255 ?Mask:255.255.255.0
? ? ? ? ? inet6 addr: fe80::20c:29ff:fe6b:db3/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
? ? ? ? ? RX packets:2201 errors:0 dropped:0 overruns:0 frame:0
? ? ? ? ? TX packets:1824 errors:0 dropped:0 overruns:0 carrier:0
? ? ? ? ? collisions:0 txqueuelen:1000
? ? ? ? ? RX bytes:199758 (195.0 KiB) ?TX bytes:166640 (162.7 KiB)
eth0:1 ? ?Link encap:Ethernet ?HWaddr 00:0C:29:6B:0D:B3
? ? ? ? ? inet addr:2.2.2.2 ?Bcast:2.2.2.255 ?Mask:255.255.255.0
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
在centos7上也加上同網段的地址,可以ping同
[root@CENTOS7 ~]#ifconfig ens33:1 2.2.2.100
[root@CENTOS7 ~]#ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 192.168.30.101 ?netmask 255.255.255.0 ?broadcast 192.168.30.255
? ? ? ? inet6 fe80::19e7:a41a:a0ac:2f54 ?prefixlen 64 ?scopeid 0x20<link>
? ? ? ? ether 00:0c:29:45:bf:14 ?txqueuelen 1000 ?(Ethernet)
? ? ? ? RX packets 1736 ?bytes 168092 (164.1 KiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 1589 ?bytes 127630 (124.6 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 2.2.2.100 ?netmask 255.0.0.0 ?broadcast 2.255.255.255
? ? ? ? ether 00:0c:29:45:bf:14 ?txqueuelen 1000 ?(Ethernet)
[root@CENTOS7 ~]#ping 2.2.2.2
PING 2.2.2.2 (2.2.2.2) 56(84) bytes of data.
64 bytes from 2.2.2.2: icmp_seq=1 ttl=64 time=0.518 ms
64 bytes from 2.2.2.2: icmp_seq=2 ttl=64 time=0.976 ms
重啟會刪除eth0:1,
ifconfig eht0:1 down 也能刪除eth0:1
想重啟不丟失就要修改配置文件
[root@centos6 network-scripts]#cat > ifcfg-eth0:1
DEVICE=eth0:1
BOOTPROTO=none
IPADDR=3.3.3.3
PREFIX=24
添加完配置文件后需要關閉NetworkManager,否則有沖突
[root@centos6 network-scripts]#service NetworkManager stop
Stopping NetworkManager daemon: ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
重新啟動網絡服務
[root@centos6 network-scripts]#service network restart
fgrep: ifcfg-ifcfg-: No such file or directory
fgrep: ifcfg-ifcfg-: No such file or directory
Shutting down interface eth0: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
Shutting down interface eth1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
/etc/init.d/network: line 217: ./ifcfg-ifcfg-: No such file or directory
Shutting down loopback interface: ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
Bringing up loopback interface: ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
Bringing up interface eth0: ?Determining if ip address 192.168.30.102 is already in use for device eth0…
Determining if ip address 3.3.3.3 is already in use for device eth0…
SIOCADDRT: Network is unreachable
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
Bringing up interface eth1: ?Determining if ip address 172.20.68.100 is already in use for device eth1…
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
[root@centos6 network-scripts]#ifconfig
eth0 ? ? ?Link encap:Ethernet ?HWaddr 00:0C:29:6B:0D:B3
? ? ? ? ? inet addr:192.168.30.102 ?Bcast:192.168.30.255 ?Mask:255.255.255.0
? ? ? ? ? inet6 addr: fe80::20c:29ff:fe6b:db3/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
? ? ? ? ? RX packets:2835 errors:0 dropped:0 overruns:0 frame:0
? ? ? ? ? TX packets:2253 errors:0 dropped:0 overruns:0 carrier:0
? ? ? ? ? collisions:0 txqueuelen:1000
? ? ? ? ? RX bytes:255849 (249.8 KiB) ?TX bytes:220130 (214.9 KiB)
eth0:1 ? ?Link encap:Ethernet ?HWaddr 00:0C:29:6B:0D:B3
? ? ? ? ? inet addr:3.3.3.3 ?Bcast:3.3.3.255 ?Mask:255.255.255.0
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
eth1 ? ? ?Link encap:Ethernet ?HWaddr 00:0C:29:6B:0D:BD
? ? ? ? ? inet addr:172.20.68.100 ?Bcast:172.20.255.255 ?Mask:255.255.0.0
教室樓上就是用這種方法配置的172.20.0.1和172.18.0.1
單臂路由的實現
ifconfig eth0:1 1.1.1.254/24
ifconfig eth0:2 2.2.2.254/24
echo 1 > /proc/sys/net/ipv4/ip_forward
A機器
ifconfig eth0 1.1.1.1/24
route add default gw 1.1.1.254
B機器
ifconfig eth0 2.2.2.2/24
route add default gw 2.2.2.254
ping 通后發現路由個數是64,LINUX默認穿過路由器才減一由于單臂路由沒有穿過路由所以還是64
當ping一個網卡路由沒有的地址時默認用物理網卡去ping
如果非要用別名網卡去ping,命令是
ping -I 3.3.3.3 1.1.1.254
tcpdump icmp -nn
netstat命令
?netstat – Print network connections, routing tables, interface statistics, masquerade
connections, and multicast memberships
?顯示網絡連接:
netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–
numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]
-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處于監聽狀態
-a: 所有狀態
-n: 以數字顯示IP和端口;
-e:擴展格式
-p: 顯示相關進程及PID
netstat命令
?常用組合:
-tan, -uan, -tnl, -unl
?顯示路由表:
netstat {–route|-r} [–numeric|-n]
-r: 顯示內核路由表
-n: 數字格式
?顯示接口統計數據:
netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p]
[–numeric|-n]
netstat -i
netstat –I=IFACE
ifconfig -s eth0
[root@centos6 network-scripts]#netstat -nr
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags ? MSS Window ?irtt Iface
192.168.30.0 ? ?0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? ? ? 0 0 ? ? ? ? ?0 eth0
3.3.3.0 ? ? ? ? 0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? ? ? 0 0 ? ? ? ? ?0 eth0
169.254.0.0 ? ? 0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? ? ? 0 0 ? ? ? ? ?0 eth0
169.254.0.0 ? ? 0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? ? ? 0 0 ? ? ? ? ?0 eth1
172.20.0.0 ? ? ?0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? ? ? 0 0 ? ? ? ? ?0 eth1
0.0.0.0 ? ? ? ? 172.20.0.1 ? ? ?0.0.0.0 ? ? ? ? UG ? ? ? ?0 0 ? ? ? ? ?0 eth1
netstat -n ? 查看所有連接,本地的socket連接,tcp和udp等連接
socket文件 ?s開頭的粉色文件 用于實現本地通訊,同一電腦上兩個網絡軟件(A和B)通訊傳給A將數據傳給socket,再由socket傳給B,省略封裝解封裝的過程
[root@centos6 ~]#ll /var/run/dbus/system_bus_socket
srwxrwxrwx. 1 root root 0 May ?2 08:50 /var/run/dbus/system_bus_socket
[root@centos6 ~]#netstat -nt ? ? 顯示的是正在連接的
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address ? ? ? ? ? ? ? Foreign Address ? ? ? ? ? ? State
tcp ? ? ? ?0 ? ? 64 192.168.30.102:22 ? ? ? ? ? 192.168.30.1:55486 ? ? ? ? ?ESTABLISHED
[root@centos6 ~]#netstat -nutl ? ? 正在監聽的UDP 和 TCP
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address ? ? ? ? ? ? ? Foreign Address ? ? ? ? ? ? State
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:58406 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:111 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:22 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:631 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:25 ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ? ?0 :::111 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
tcp ? ? ? ?0 ? ? ?0 :::22 ? ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
tcp ? ? ? ?0 ? ? ?0 ::1:631 ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
tcp ? ? ? ?0 ? ? ?0 :::46232 ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
tcp ? ? ? ?0 ? ? ?0 ::1:25 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
udp ? ? ? ?0 ? ? ?0 0.0.0.0:747 ? ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 0.0.0.0:111 ? ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 0.0.0.0:631 ? ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 0.0.0.0:52228 ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 127.0.0.1:807 ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 :::747 ? ? ? ? ? ? ? ? ? ? ?:::*
udp ? ? ? ?0 ? ? ?0 :::111 ? ? ? ? ? ? ? ? ? ? ?:::*
udp ? ? ? ?0 ? ? ?0 :::54811 ? ? ? ? ? ? ? ? ? ?:::*
[root@centos6 ~]#netstat -nuta ? ? ? 監聽的和正在連接的統統都顯示
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address ? ? ? ? ? ? ? Foreign Address ? ? ? ? ? ? State
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:58406 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:111 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:22 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:631 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:25 ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN
tcp ? ? ? ?0 ? ?208 192.168.30.102:22 ? ? ? ? ? 192.168.30.1:55486 ? ? ? ? ?ESTABLISHED
tcp ? ? ? ?0 ? ? ?0 :::111 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
tcp ? ? ? ?0 ? ? ?0 :::22 ? ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
tcp ? ? ? ?0 ? ? ?0 ::1:631 ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
tcp ? ? ? ?0 ? ? ?0 :::46232 ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
tcp ? ? ? ?0 ? ? ?0 ::1:25 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN
udp ? ? ? ?0 ? ? ?0 0.0.0.0:747 ? ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 0.0.0.0:111 ? ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 0.0.0.0:631 ? ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 0.0.0.0:52228 ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 127.0.0.1:807 ? ? ? ? ? ? ? 0.0.0.0:*
udp ? ? ? ?0 ? ? ?0 :::747 ? ? ? ? ? ? ? ? ? ? ?:::*
udp ? ? ? ?0 ? ? ?0 :::111 ? ? ? ? ? ? ? ? ? ? ?:::*
udp ? ? ? ?0 ? ? ?0 :::54811 ? ? ? ? ? ? ? ? ? ?:::*
[root@centos6 ~]#netstat -nutap ? ? ? ? ? -p顯示誰在使用這個連接
tcp ? ? ? ?0 ? ? ?0 192.168.30.102:22 ? ? ? ? ? 192.168.30.1:55486 ? ? ? ? ?ESTABLISHED 5182/sshd
[root@centos6 ~]#netstat -nutape ? ? ? ?-e ? 顯示擴展信息
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address ? ? ? ? ? ? ? Foreign Address ? ? ? ? ? ? State ? ? ? User ? ? ? Inode ? ? ?PID/Program name
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:58406 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?29 ? ? ? ? 16478 ? ? ?2327/rpc.statd
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:111 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?0 ? ? ? ? ?16229 ? ? ?2268/rpcbind
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:22 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?0 ? ? ? ? ?17721
[root@centos6 network-scripts]#netstat -i
Kernel Interface table
Iface ? ? ? MTU Met ? ?RX-OK RX-ERR RX-DRP RX-OVR ? ?TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 ? ? ? 1500 ? 0 ? ? 4105 ? ? ?0 ? ? ?0 ? ? ?0 ? ? 3166 ? ? ?0 ? ? ?0 ? ? ?0 BMRU
lo ? ? ? ?65536 ? 0 ? ? ? 12 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ? 12 ? ? ?0 ? ? ?0 ? ? ?0 LRU
[root@centos6 network-scripts]#netstat -Ieth0 ? ? ? ? -i ?顯示網卡端口信息
Kernel Interface table
Iface ? ? ? MTU Met ? ?RX-OK RX-ERR RX-DRP RX-OVR ? ?TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 ? ? ? 1500 ? 0 ? ? 4148 ? ? ?0 ? ? ?0 ? ? ?0 ? ? 3195 ? ? ?0 ? ? ?0 ? ? ?0 BMRU
[root@centos6 network-scripts]#ifconfig -s eth0
Iface ? MTU Met ? ?RX-OK RX-ERR RX-DRP RX-OVR ? ?TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 ? ? ? 1500 ? 0 ? ? 4243 ? ? ?0 ? ? ?0 ? ? ?0 ? ? 3257 ? ? ?0 ? ? ?0 ? ? ?0 BMRU
RX-OK 正常的包
RX-ERR錯誤的包
RX-DRP扔掉的包
RX-OVR過載的包
[root@centos6 network-scripts]#ss -nutlap
Netid ?State ? ? ?Recv-Q Send-Q ? ? ? ? ? ? ? ? ? Local Address:Port ? ? ? ? ? ? ? ? ? ? Peer Address:Port
udp ? ?UNCONN ? ? 0 ? ? ?0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*:747 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *:* ? ? ?users:((“rpcbind”,2268,7))
udp ? ?UNCONN ? ? 0 ? ? ?0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*:111 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *:* ? ? ?users:((“rpcbind”,2268,6))
udp ? ?UNCONN ? ? 0 ? ? ?0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*:631 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *:* ? ? ?users:((“cupsd”,2372,9))
udp ? ?UNCONN ? ? 0 ? ? ?0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*:52228 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *:* ? ? ?users:((“rpc.statd”,2327,8))
udp ? ?UNCONN ? ? 0 ? ? ?0 ? ? ? ? ? ? ? ? ? ? ? ? ? ?127.0.0.1:807 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *:* ? ? ?users:((“rpc.statd”,2327,5))
udp ? ?UNCONN ? ? 0 ? ? ?0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? :::747 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:::*
ss命令
?格式:ss [OPTION]… [FILTER]
? netstat通過遍歷proc來獲取socket信息,ss使用netlink與內核tcp_diag模塊通信獲取socket信
息。
?選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀態的連接
-a: 所有
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
ss命令
? FILTER : [ state TCP-STATE ] [ EXPRESSION ]
? TCP的常見狀態:
tcp finite state machine:
LISTEN: 監聽
ESTABLISHED:已建立的連接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
? EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
? 常用組合:
-tan, -tanl, -tanlp, -uan
常見用法
?ss -l 顯示本地打開的所有端口
?ss -pl 顯示每個進程具體打開的socket
?ss -t -a 顯示所有tcp socket
?ss -u -a 顯示所有的UDP Socekt
?ss -o state established ‘( dport = :ssh or sport = :ssh )’ 顯示所有已建立的
ssh連接
?ss -o state established ‘( dport = :http or sport = :http )’ 顯示所有已建立
的HTTP連接
?ss -s 列出當前socket詳細信息
[root@centos6 network-scripts]#ss -o state established ‘( dport = :ssh or sport = :ssh )’
Recv-Q Send-Q ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Local Address:Port ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Peer Address:Port
0 ? ? ?64 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.30.102:ssh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.30.1:55486 ? ?timer:(on,220ms,0)
ip命令:
?配置Linux網絡屬性:ip命令
?ip – show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip link – network device configuration
set dev IFACE
可設置屬性:
up and down:激活或禁用指定接口
ifup/ifdown
show [dev IFACE]:指定接口
[up]:僅顯示處于激活狀態的接口
ip命令
? ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址時指明網卡別名
[scope {global|link|host}]:指明作用域
global: 全局可用
link: 僅鏈接可用
host: 本機可用
[broadcast ADDRESS]:指明廣播地址
? ip address show – look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
? ip address flush – 使用格式同show
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
ip命令
? ip route – routing table management
添加路由:ip route add
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主機路由:IP
網絡路由:NETWORK/MASK
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1
添加網關:ip route add default via GW dev IFACE
ip route add default via 172.16.0.1
刪除路由:ip route delete
ip route del TARGET
顯示路由:ip route show|list
清空路由表:ip route flush [dev IFACE] ?[via PREFIX]
ip route flush dev eth0
[root@CENTOS7 ~]#ip r a 2.2.2.0/24 via 172.20.0.1 dev ens37
[root@CENTOS7 ~]#route -n
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags Metric Ref ? ?Use Iface
0.0.0.0 ? ? ? ? 172.20.0.1 ? ? ?0.0.0.0 ? ? ? ? UG ? ?100 ? ?0 ? ? ? ?0 ens37
1.1.1.0 ? ? ? ? 172.20.0.1 ? ? ?255.255.255.0 ? UG ? ?0 ? ? ?0 ? ? ? ?0 ens37
2.2.2.0 ? ? ? ? 172.20.0.1 ? ? ?255.255.255.0 ? UG ? ?0 ? ? ?0 ? ? ? ?0 ens37
172.20.0.0 ? ? ?0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 100 ? ?0 ? ? ? ?0 ens37
192.168.30.0 ? ?0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? 100 ? ?0 ? ? ? ?0 ens33
[root@CENTOS7 ~]#ip r
default via 172.20.0.1 dev ens37 proto static metric 100
1.1.1.0/24 via 172.20.0.1 dev ens37
2.2.2.0/24 via 172.20.0.1 dev ens37
172.20.0.0/16 dev ens37 proto kernel scope link src 172.20.109.255 metric 100
192.168.30.0/24 dev ens33 proto kernel scope link src 192.168.30.101 metric 100
[root@CENTOS7 ~]#ip r d 1.1.1.0/24 via 172.20.0.1 dev ens37
[root@CENTOS7 ~]#ip r d 2.2.2.0/24 via 172.20.0.1 dev ens37
[root@CENTOS7 ~]#route -n
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags Metric Ref ? ?Use Iface
0.0.0.0 ? ? ? ? 172.20.0.1 ? ? ?0.0.0.0 ? ? ? ? UG ? ?100 ? ?0 ? ? ? ?0 ens37
172.20.0.0 ? ? ?0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 100 ? ?0 ? ? ? ?0 ens37
192.168.30.0 ? ?0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? 100 ? ?0 ? ? ? ?0 ens33
[root@CENTOS7 ~]#ip a a 1.1.1.1/24 dev ens33
[root@CENTOS7 ~]#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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
? ? link/ether 00:0c:29:45:bf:14 brd ff:ff:ff:ff:ff:ff
? ? inet 192.168.30.101/24 brd 192.168.30.255 scope global dynamic ens33
? ? ? ?valid_lft 1369sec preferred_lft 1369sec
? ? inet 1.1.1.1/24 scope global ens33
? ? ? ?valid_lft forever preferred_lft forever
? ? inet6 fe80::19e7:a41a:a0ac:2f54/64 scope link
? ? ? ?valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
? ? link/ether 00:0c:29:45:bf:1e brd ff:ff:ff:ff:ff:ff
? ? inet 172.20.109.255/16 brd 172.20.255.255 scope global dynamic ens37
? ? ? ?valid_lft 83353sec preferred_lft 83353sec
? ? inet6 fe80::2ee4:100d:665:521f/64 scope link
? ? ? ?valid_lft forever preferred_lft forever
[root@CENTOS7 ~]#ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 192.168.30.101 ?netmask 255.255.255.0 ?broadcast 192.168.30.255
? ? ? ? inet6 fe80::19e7:a41a:a0ac:2f54 ?prefixlen 64 ?scopeid 0x20<link>
? ? ? ? ether 00:0c:29:45:bf:14 ?txqueuelen 1000 ?(Ethernet)
? ? ? ? RX packets 1497 ?bytes 138405 (135.1 KiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 1138 ?bytes 145694 (142.2 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 172.20.109.255 ?netmask 255.255.0.0 ?broadcast 172.20.255.255
? ? ? ? inet6 fe80::2ee4:100d:665:521f ?prefixlen 64 ?scopeid 0x20<link>
? ? ? ? ether 00:0c:29:45:bf:1e ?txqueuelen 1000 ?(Ethernet)
? ? ? ? RX packets 270968 ?bytes 18935607 (18.0 MiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 214 ?bytes 30457 (29.7 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> ?mtu 65536
? ? ? ? inet 127.0.0.1 ?netmask 255.0.0.0
? ? ? ? inet6 ::1 ?prefixlen 128 ?scopeid 0x10<host>
? ? ? ? loop ?txqueuelen 1 ?(Local Loopback)
? ? ? ? RX packets 12 ?bytes 1404 (1.3 KiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 12 ?bytes 1404 (1.3 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
[root@CENTOS7 ~]#ip a a 1.2.1.1/24 dev ens33 label ens33:1
[root@CENTOS7 ~]#ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 192.168.30.101 ?netmask 255.255.255.0 ?broadcast 192.168.30.255
? ? ? ? inet6 fe80::19e7:a41a:a0ac:2f54 ?prefixlen 64 ?scopeid 0x20<link>
? ? ? ? ether 00:0c:29:45:bf:14 ?txqueuelen 1000 ?(Ethernet)
? ? ? ? RX packets 1640 ?bytes 151663 (148.1 KiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 1240 ?bytes 158620 (154.9 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 1.2.1.1 ?netmask 255.255.255.0 ?broadcast 0.0.0.0
? ? ? ? ether 00:0c:29:45:bf:14 ?txqueuelen 1000 ?(Ethernet)
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 172.20.109.255 ?netmask 255.255.0.0 ?broadcast 172.20.255.255
? ? ? ? inet6 fe80::2ee4:100d:665:521f ?prefixlen 64 ?scopeid 0x20<link>
? ? ? ? ether 00:0c:29:45:bf:1e ?txqueuelen 1000 ?(Ethernet)
? ? ? ? RX packets 271326 ?bytes 18995299 (18.1 MiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 214 ?bytes 30457 (29.7 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> ?mtu 65536
? ? ? ? inet 127.0.0.1 ?netmask 255.0.0.0
? ? ? ? inet6 ::1 ?prefixlen 128 ?scopeid 0x10<host>
? ? ? ? loop ?txqueuelen 1 ?(Local Loopback)
? ? ? ? RX packets 12 ?bytes 1404 (1.3 KiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 12 ?bytes 1404 (1.3 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
[root@centos6 ~]#ip link set eth1 down
[root@centos6 ~]#ifconfig
eth0 ? ? ?Link encap:Ethernet ?HWaddr 00:0C:29:6B:0D:B3
? ? ? ? ? inet addr:192.168.30.102 ?Bcast:192.168.30.255 ?Mask:255.255.255.0
? ? ? ? ? inet6 addr: fe80::20c:29ff:fe6b:db3/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
? ? ? ? ? RX packets:2929 errors:0 dropped:0 overruns:0 frame:0
? ? ? ? ? TX packets:2155 errors:0 dropped:0 overruns:0 carrier:0
? ? ? ? ? collisions:0 txqueuelen:1000
? ? ? ? ? RX bytes:253587 (247.6 KiB) ?TX bytes:326762 (319.1 KiB)
lo ? ? ? ?Link encap:Local Loopback
? ? ? ? ? inet addr:127.0.0.1 ?Mask:255.0.0.0
? ? ? ? ? inet6 addr: ::1/128 Scope:Host
? ? ? ? ? UP LOOPBACK RUNNING ?MTU:65536 ?Metric:1
? ? ? ? ? RX packets:64 errors:0 dropped:0 overruns:0 frame:0
? ? ? ? ? TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
? ? ? ? ? collisions:0 txqueuelen:0
? ? ? ? ? RX bytes:4936 (4.8 KiB) ?TX bytes:4936 (4.8 KiB)
[root@centos6 ~]#ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
? ? link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
? ? link/ether 00:0c:29:6b:0d:b3 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
? ? link/ether 00:0c:29:6b:0d:bd brd ff:ff:ff:ff:ff:ff
[root@centos6 ~]#ip link set eth1 up
[root@centos6 ~]#ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
? ? link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
? ? link/ether 00:0c:29:6b:0d:b3 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
? ? link/ether 00:0c:29:6b:0d:bd brd ff:ff:ff:ff:ff:ff
grobal全局ip
本地網卡eth0
在centos6上
ip a a 1.1.1.1/24 dev eth0
ip a a 2.2.2.2/24 dev eth0
ip a a 3.3.3.3/24 dev eth0
ip a a 5.5.5.5/24 dev eth1
本地網卡ens33
ip a a 1.1.1.2/24 dev eth0
ip a d default via 172.20.0.1 dev ens37 proto static metric 100 ? ? 刪除路由表
ip a a default via 1.1.1.1 dev ens33
就能ping通所有centos6上的IP地址
global的地址在內核內,只要能到達任何一個網卡就把所有的globalip地址響應
link 只響應到達本網卡的ip地址
host 只能在本機有效
ip a flush dev eth0 清除eth0上的所有地址
網絡配置文件
?IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-
scripts/ifcfg-IFACE
?路由相關的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
?/etc/sysconfig/network-scripts/ifcfg-IFACE:
說明參考/usr/share/doc/initscripts-9.49.30/sysconfig.txt
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:普通用戶是否可控制此設備 ? ? 后面跟=yes或者=no,
?PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的
dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
主機名和本地解析器
?配置當前主機的主機名:
hostname [HOSTNAME]
/etc/sysconfig/network
HOSTNAME=
?解析器執行正向和逆向查詢
?/etc/hosts
? 本地主機名數據庫和IP地址的映像
? 對小型獨立網絡有用
? 通常,在使用DNS前檢查
? getent hosts 查看/etc/hosts 內容
dns名字解析
? /etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
search magedu.com
? /etc/nsswitch.conf
與/etc/hosts相比優先于DNS
? 正向解析:FQDN–>IP
dig -t A FQDN
host -t A FQDN
? 反向解析:IP–>FQDN
dig -x IP
host -t PTR IP
網絡配置文件
?/etc/sysconfig/network-scripts/route-IFACE(跟網卡名)
? 注意:需service network restart生效
? 兩種風格:
(1) TARGET via GW
如:10.0.0.0/8 via 172.16.0.1
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
永久增加路由表
[root@centos6 network-scripts]#vim route-eth1
6.6.6.0/24 via 172.20.0.1
重啟網絡服務
service network restart
[root@centos6 network-scripts]#route -n
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags Metric Ref ? ?Use Iface
192.168.30.0 ? ?0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? 0 ? ? ?0 ? ? ? ?0 eth0
6.6.6.0 ? ? ? ? 172.20.0.1 ? ? ?255.255.255.0 ? UG ? ?0 ? ? ?0 ? ? ? ?0 eth1
169.254.0.0 ? ? 0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 1002 ? 0 ? ? ? ?0 eth0
169.254.0.0 ? ? 0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 1003 ? 0 ? ? ? ?0 eth1
172.20.0.0 ? ? ?0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 0 ? ? ?0 ? ? ? ?0 eth1
0.0.0.0 ? ? ? ? 172.20.0.1 ? ? ?0.0.0.0 ? ? ? ? UG ? ?0 ? ? ?0 ? ? ? ?0 eth1
[root@centos6 ~]#ip r d 6.6.6.0/24 via 172.20.0.1 dev eth1
[root@centos6 ~]#route -n
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags Metric Ref ? ?Use Iface
192.168.30.0 ? ?0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? 0 ? ? ?0 ? ? ? ?0 eth0
169.254.0.0 ? ? 0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 1002 ? 0 ? ? ? ?0 eth0
169.254.0.0 ? ? 0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 1003 ? 0 ? ? ? ?0 eth1
172.20.0.0 ? ? ?0.0.0.0 ? ? ? ? 255.255.0.0 ? ? U ? ? 0 ? ? ?0 ? ? ? ?0 eth1
0.0.0.0 ? ? ? ? 172.20.0.1 ? ? ?0.0.0.0 ? ? ? ? UG ? ?0 ? ? ?0 ? ? ? ?0 eth1
一個網卡同時擁有dhcp 和 靜態獲取地址
[root@centos6 network-scripts]#cp ifcfg-eth1 ifcfg-eth1:2
[root@centos6 network-scripts]#vim ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp
IPADDR=172.20.68.100
PREFIX=16
GATEWAY=172.20.0.1
DNS1=114.114.114.114
DNS2=1.1.1.1
~
[root@centos6 network-scripts]#vim ifcfg-eth1:2
DEVICE=eth1:2
BOOTPROTO=none
IPADDR=172.20.68.100
PREFIX=16
GATEWAY=172.20.0.1
DNS1=114.114.114.114
DNS2=1.1.1.1
重啟網絡服務
[root@centos6 network-scripts]#ifconfig
eth0 ? ? ?Link encap:Ethernet ?HWaddr 00:0C:29:6B:0D:B3
? ? ? ? ? inet addr:192.168.30.102 ?Bcast:192.168.30.255 ?Mask:255.255.255.0
? ? ? ? ? inet6 addr: fe80::20c:29ff:fe6b:db3/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
? ? ? ? ? RX packets:4500 errors:0 dropped:0 overruns:0 frame:0
? ? ? ? ? TX packets:3250 errors:0 dropped:0 overruns:0 carrier:0
? ? ? ? ? collisions:0 txqueuelen:1000
? ? ? ? ? RX bytes:396030 (386.7 KiB) ?TX bytes:484136 (472.7 KiB)
eth1 ? ? ?Link encap:Ethernet ?HWaddr 00:0C:29:6B:0D:BD
? ? ? ? ? inet addr:172.20.102.175 ?Bcast:172.20.255.255 ?Mask:255.255.0.0
? ? ? ? ? inet6 addr: fe80::20c:29ff:fe6b:dbd/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
? ? ? ? ? RX packets:292549 errors:0 dropped:0 overruns:0 frame:0
? ? ? ? ? TX packets:6450 errors:0 dropped:0 overruns:0 carrier:0
? ? ? ? ? collisions:0 txqueuelen:1000
? ? ? ? ? RX bytes:42801616 (40.8 MiB) ?TX bytes:401543 (392.1 KiB)
eth1:2 ? ?Link encap:Ethernet ?HWaddr 00:0C:29:6B:0D:BD
? ? ? ? ? inet addr:172.20.68.100 ?Bcast:172.20.255.255 ?Mask:255.255.0.0
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
lo ? ? ? ?Link encap:Local Loopback
? ? ? ? ? inet addr:127.0.0.1 ?Mask:255.0.0.0
? ? ? ? ? inet6 addr: ::1/128 Scope:Host
? ? ? ? ? UP LOOPBACK RUNNING ?MTU:65536 ?Metric:1
? ? ? ? ? RX packets:64 errors:0 dropped:0 overruns:0 frame:0
? ? ? ? ? TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
? ? ? ? ? collisions:0 txqueuelen:0
? ? ? ? ? RX bytes:4936 (4.8 KiB) ?TX bytes:4936 (4.8 KiB)
在標準網卡里面可以自動獲取也可以手工指定,在網卡別名里面只能手工指定不能自動獲取。
[root@centos6 ~]#vim /etc/hosts ? ?地址解析文件。
127.0.0.1 ? localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 ? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6
6.6.6.6 www.magedu.com
192.168.30.101 centos7
在這個文件中加入地址及其域名,訪問該域名事就直接訪問地址,不需要走DNS(地址解析器)
修改本機名后最好在hosts文件中加入本機名否則可能導致一些訪問失?。ㄟ@些訪問只通過主機名獲取ip地址)
默認的優先級是hosts文件的優先級高于dns
在文件cat /etc/nsswitch.conf
[root@centos6 ~]#cat /etc/nsswitch.conf
#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry ‘[NOTFOUND=return]’ means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Valid entries include:
#
# nisplus Use NIS+ (NIS version 3)
# nis Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# db Use the local database (.db) files
# compat Use NIS on compat mode
# hesiod Use Hesiod for user lookups
# [NOTFOUND=return] Stop searching if not found so far
#
# To use db, put the “db” in front of “files” for entries you want to be
# looked up first in the databases
#
# Example:
#passwd: ? ?db files nisplus nis
#shadow: ? ?db files nisplus nis
#group: ? ? db files nisplus nis
passwd: ? ? files
shadow: ? ? files
group: ? ? ?files
#hosts: ? ? db files nisplus nis dns
hosts: ? ? ?files dns
將files和dns調換位置后就dns的優先級高于hosts
[root@centos6 ~]#getent hosts
127.0.0.1 ? ? ? localhost localhost.localdomain localhost4 localhost4.localdomain4 centos6
127.0.0.1 ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.30.101 ?centos7
網卡別名
?對虛擬主機有用
?將多個IP地址綁定到一個NIC上
eth0:1 、eth0:2、eth0:3
?ifconfig命令:
ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down
?ip命令:
ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
設備別名
?為每個設備別名生成獨立的接口配置文件
? 關閉NetworkManager服務
? ifcfg-ethX:xxx
? 必須使用靜態聯網
DEVICE=eth0:0
IPADDR=10.10.10.10
NETMASK=255.0.0.0
ONPARENT=yes
?注意:service network restart 生效
?參考/usr/share/doc/initscripts-*/sysconfig.txt
網絡接口配置-bonding
?Bonding
將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。直接給
兩塊網卡設置同一IP地址是不可以的。通過bonding,虛擬一塊網卡對外提供連接,
物理網卡的被修改為相同的MAC地址
Bonding工作模式
?Mode 0 (balance-rr)
輪轉(Round-robin)策略:從頭到尾順序的在每一個slave
接口上面發送數據包。本模式提供負載均衡和容錯的能力
?Mode 1 (active-backup)
活動-備份(主備)策略:只有一個slave被激活,當且僅當活動的slave接口失
敗時才會激活其他slave。為了避免交換機發生混亂此時綁定的MAC地址只有
一個外部端口上可見
?Mode 3 (broadcast)
廣播策略:在所有的slave接口上傳送所有的報文,提供容錯能力
?active-backup、balance-tlb 和 balance-alb 模式不需要交換機的任何特
殊配置。其他綁定模式需要配置交換機以便整合鏈接。如:Cisco 交換機需
要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和
EtherChannel
Bonding配置
?創建bonding設備的配置文件
?/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS= “miimon=100 mode=0”
?/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
?查看bond0狀態:/proc/net/bonding/bond0
Bonding配置
?miimon 是用來進行鏈路監測的。如果miimon=100,那么系統每
100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路
?刪除bond0
ifconfig bond0 down
rmmod bonding
?詳細幫助:
/usr/share/doc/kernel-doc-
version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bondi
ng.txt
實現bonding的網卡必須是同一個網段的兩個網卡。
cdnet
rm -f ifcfg-eth* ? ? 刪除所有的網卡的配置文件
cat > ifcfg-bond0 ? ?配置bond0
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.30.101
PREFIX=24
BONDING_OPTS=”mode=1 miimon=100″
cat > ifcfg-eth0 ? ?配置bond0中的eth0
DEVICE=eth0
MASTER=bond0
SLAVE=YES
cat > ifcfg-eth1 ?配置bond0中的eth1
DEVICE=eth1
MASTER=bond0
SLAVE=YES
重啟網絡服務
cat /proc/net/bonding/bond0 ? ?查看誰是活動的網卡誰是備用的網卡
關閉eth0拔掉網線
ping 并不影響,但是會丟失幾個數據包
cat /proc/net/bonding/bond0
發現現在活動網卡是eth1,自動替換了eth0
都拔掉網線ping不通了,隨便恢復網卡任意一個都會繼續再ping通。
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.30.101
PREFIX=24
BONDING_OPTS=”mode=3 miimon=100″
cat > ifcfg-eth0 ? ?配置bond0中的eth0
DEVICE=eth0
MASTER=bond0
SLAVE=YES
cat > ifcfg-eth1 ?配置bond0中的eth1
DEVICE=eth1
MASTER=bond0
SLAVE=YES
ping 192.168.30.101 時會回復兩個包。
刪除bonding
首先禁用bonding
ifconfig bond0 down
卸載bonding 的驅動模塊
lsmod 查看本機的所有驅動模塊
modprobe -r bonding
刪除 /etc/sysconfig/network-script/ifcfg-bond0
修改該目錄下的eth0 和 eth1 使其恢復到默認。
從新啟動網絡服務
CentOS 7網絡屬性配置
? CentOS 6之前,網絡接口使用連續號碼命名:eth0、eth1等,當增加或刪除網卡時,名
稱可能會發生變化,導致配置文件發生錯誤。
? CentOS 7使用基于硬件,設備拓撲和設置類型命名:
? (1) 網卡命名機制
systemd對網絡設備的命名方式
(a) 如果Firmware或BIOS為主板上集成的設備提供的索引信息可用,且可預測則
根據此索引進行命名,例如eno1
(b) 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根
據此索引進行命名,例如ens1
(c) 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0
(d) 如果用戶顯式啟動,也可根據MAC地址進行命名,enx2387a1dc56
(e) 上述均不可用時,則使用傳統命名機制
網卡名稱
?基于BIOS支持啟用biosdevname軟件
內置網卡:em1,em2
pci卡:pYpX Y:slot ,X:port
?(2) 名稱組成格式
en: Ethernet 有線局域網
wl: wlan 無線局域網
ww: wwan無線廣域網
名稱類型:
o<index>: 集成設備的設備索引號
s<slot>: 擴展槽的索引號
x<MAC>: 基于MAC地址的命名
p<bus>s<slot>: enp2s1
采用傳統命名方式
?使用傳統命名方式:
?(1) 編輯/etc/default/grub配置文件
GRUB_CMDLINE_LINUX =”rhgb quiet net.ifnames=0″
或:修改/boot/grub2/grub.cfg
?(2) 為grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
?(3) 重啟系統
修改centos7的網卡名
[root@CENTOS7 ~]#vim /etc/default/grub
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 rhgb quiet net.ifnames=0″ ? ?在此行加入net.ifname=0
GRUB_DISABLE_RECOVERY=”true”
修改完文件沒有生成相應配置
[root@CENTOS7 ~]#grub2-mkconfig -o /etc/grub2.cfg ? 生成相應配置
Generating grub configuration file …
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-d9b2c489cdf948f8b487e98005c15e1c
Found initrd image: /boot/initramfs-0-rescue-d9b2c489cdf948f8b487e98005c15e1c.img
done
也可以直接修改下面文件的最后一行添加 net.ifnames=0
[root@CENTOS7 ~]#vim /boot/grub2/grub.cfg
menuentry ‘CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)’ –class centos –class gnu-lin
ux –class gnu –class os –unrestricted $menuentry_id_option ‘gnulinux-3.10.0-693.el7.x
86_64-advanced-0a1bc23e-06e5-4210-9b32-0edbff09ca1a’ {
? ? ? ? load_video
? ? ? ? set gfxpayload=keep
? ? ? ? insmod gzio
? ? ? ? insmod part_msdos
? ? ? ? insmod xfs
? ? ? ? set root=’hd0,msdos1′
? ? ? ? if [ x$feature_platform_search_hint = xy ]; then
? ? ? ? ? search –no-floppy –fs-uuid –set=root –hint-bios=hd0,msdos1 –hint-efi=hd0,
msdos1 –hint-baremetal=ahci0,msdos1 –hint=’hd0,msdos1′ ?4d8d9214-eeed-4758-8c34-f05492
b9ea73
? ? ? ? else
? ? ? ? ? search –no-floppy –fs-uuid –set=root 4d8d9214-eeed-4758-8c34-f05492b9ea73
? ? ? ? fi
? ? ? ? linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=0a1bc23e-06e5-4210-9b32-0edbff0
9ca1a ro crashkernel=auto rhgb quiet net.ifnames=0
CentOS 7網絡配置工具
? CentOS7主機名
? 配置文件:/etc/hostname ,默認沒有此文件,通過DNS反向解析獲取主機名,主機名
默認為:localhost.localdomain
? 顯示主機名信息
hostname
hostnamectl status
? 設置主機名
hostnamectl set-hostname centos7.magedu.com
? 刪除文件/etc/hostname,恢復主機名localhost.localdomain
? CentOS 7網絡配置工具
? 圖形工具:nm-connection-editor
? 字符配置tui工具:nmtui
? 命令行工具:nmcli
nmcli命令
? 地址配置工具:nmcli
? nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device – show and manage network interfaces
nmcli device help
connection – start, stop, and manage network connections
nmcli connection help
? 修改IP地址等屬性:
nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses ipv4.gateway
ipv4.dns1 ipv4.method manual | auto
? 修改配置文件執行生效:systemctl restart network
nmcli con reload
? nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0
使用nmcli配置網絡
?NeworkManager是管理和監控網絡設置的守護進程
?設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,
但同時只有一個連接配置生效
?顯示所有包括不活動連接
nmcli con show
?顯示所有活動連接
nmcli con show –active
?顯示網絡連接配置
nmcli con show “System eth0“
?顯示設備狀態
nmcli dev status
使用nmcli配置網絡
顯示網絡接口屬性
nmcli dev show eth0
?創建新連接default,IP自動通過dhcp獲取
nmcli con add con-name default type Ethernet ifname eth0
?刪除連接
nmcli con del default
?創建新連接static ,指定靜態IP,不自動連接
nmcti con add con-name static ifname eth0 autoconnect no type
Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
使用nmcli配置網絡
?啟用static連接配置
nmcli con up static
?啟用default連接配置
nmcli con up default
?查看幫助
nmcli con add help
使用nmcli配置網絡
?修改連接設置
nmcli con mod“static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
?DNS設置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設置,不自動獲取。等價于下
面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
使用mncli 配置eth0和eth1:
刪除原來的配置文件
[root@CENTOS7 network-scripts]#rm -f ifcfg-ens33
[root@CENTOS7 network-scripts]#nmcli device status ? ? ? 查看當前網卡的狀態信息, ?connection代表著一份配置文件
DEVICE ?TYPE ? ? ?STATE ? ? ?CONNECTION
eth0 ? ?ethernet ?connected ?Wired connection 1
eth1 ? ?ethernet ?connected ?Wired connection 2
lo ? ? ?loopback ?unmanaged ?—
[root@CENTOS7 network-scripts]#nmcli connection show
NAME ? ? ? ? ? ? ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
Wired connection 1 ?33424e5b-2b3d-32bc-b8a8-ac48620fd6fe ?802-3-ethernet ?eth0
Wired connection 2 ?baceab37-6abd-3c3e-a886-5b1513017d6b ?802-3-ethernet ?eth1
ens33 ? ? ? ? ? ? ? 15fdb949-5c4d-4c76-a17e-8e4491fb8cb4 ?802-3-ethernet ?—
上面的配置文件放在內存中實際中并沒有配置這兩個網卡的文件
[root@CENTOS7 network-scripts]#ls
ifcfg-lo ? ? ifdown-post ? ? ?ifup-aliases ?ifup-plusb ? ? ifup-wireless
ifdown ? ? ? ifdown-ppp ? ? ? ifup-bnep ? ? ifup-post ? ? ?init.ipv6-global
ifdown-bnep ?ifdown-routes ? ?ifup-eth ? ? ?ifup-ppp ? ? ? network-functions
ifdown-eth ? ifdown-sit ? ? ? ifup-ib ? ? ? ifup-routes ? ?network-functions-ipv6
ifdown-ib ? ?ifdown-Team ? ? ?ifup-ippp ? ? ifup-sit
ifdown-ippp ?ifdown-TeamPort ?ifup-ipv6 ? ? ifup-Team
ifdown-ipv6 ?ifdown-tunnel ? ?ifup-isdn ? ? ifup-TeamPort
ifdown-isdn ?ifup ? ? ? ? ? ? ifup-plip ? ? ifup-tunnel
[root@CENTOS7 network-scripts]#nmcli connection delete ens33 ? ? 刪除ens33這個配置文件
Connection ‘ens33’ (15fdb949-5c4d-4c76-a17e-8e4491fb8cb4) successfully deleted.
用nmcli配置eth1的配置文件:
[root@CENTOS7 network-scripts]#nmcli connection add con-name eth1 ifname eth1 type ethernet ipv4.method auto connection.autoconnect yes
Connection ‘eth1’ (e5e67bba-e114-4426-ba5f-59e58f0adeed) successfully added.
[root@CENTOS7 network-scripts]#nmcli connection show
NAME ? ? ? ? ? ? ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
Wired connection 1 ?33424e5b-2b3d-32bc-b8a8-ac48620fd6fe ?802-3-ethernet ?eth0
Wired connection 2 ?baceab37-6abd-3c3e-a886-5b1513017d6b ?802-3-ethernet ?eth1
eth1 ? ? ? ? ? ? ? ?e5e67bba-e114-4426-ba5f-59e58f0adeed ?802-3-ethernet ?— ? ? ? 沒有生效
生效命令是
[root@CENTOS7 network-scripts]#nmcli connection up eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@CENTOS7 network-scripts]#nmcli connection show
NAME ? ? ? ? ? ? ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
Wired connection 1 ?33424e5b-2b3d-32bc-b8a8-ac48620fd6fe ?802-3-ethernet ?eth0
eth1 ? ? ? ? ? ? ? ?e5e67bba-e114-4426-ba5f-59e58f0adeed ?802-3-ethernet ?eth1
Wired connection 2 ?baceab37-6abd-3c3e-a886-5b1513017d6b ?802-3-ethernet ?—
修改Wired connection 2名字為home-eth1
[root@CENTOS7 network-scripts]#nmcli connection modify Wired\ connection\ 2 con-name home-eth1
[root@CENTOS7 network-scripts]#nmcli connection show
NAME ? ? ? ? ? ? ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
Wired connection 1 ?33424e5b-2b3d-32bc-b8a8-ac48620fd6fe ?802-3-ethernet ?eth0
eth1 ? ? ? ? ? ? ? ?e5e67bba-e114-4426-ba5f-59e58f0adeed ?802-3-ethernet ?eth1
home-eth1 ? ? ? ? ? baceab37-6abd-3c3e-a886-5b1513017d6b ?802-3-ethernet ?—
[root@CENTOS7 network-scripts]#ls
ifcfg-eth1 ? ? ? ifdown-ipv6 ? ? ?ifdown-tunnel ?ifup-isdn ? ?ifup-TeamPort
ifcfg-home-eth1 ?ifdown-isdn ? ? ?ifup ? ? ? ? ? ifup-plip ? ?ifup-tunnel
修改home-eth1為靜態地址
[root@CENTOS7 network-scripts]#nmcli connection modify home-eth1 ipv4.addresses 172.20.0.8/16 ipv4.gateway 172.20.0.1 ipv4.dns 114.114.114.114 ipv4.dns 223.5.5.5 ipv4.method manual
[root@CENTOS7 network-scripts]#nmcli connection up home-eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@CENTOS7 network-scripts]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 192.168.30.101 ?netmask 255.255.255.0 ?broadcast 192.168.30.255
? ? ? ? inet6 fe80::f620:6ab3:e2e5:44 ?prefixlen 64 ?scopeid 0x20<link>
? ? ? ? ether 00:0c:29:45:bf:14 ?txqueuelen 1000 ?(Ethernet)
? ? ? ? RX packets 2241 ?bytes 202014 (197.2 KiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 1608 ?bytes 230065 (224.6 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 172.20.0.8 ?netmask 255.255.0.0 ?broadcast 172.20.255.255
? ? ? ? inet6 fe80::7d06:b095:d0e9:8bfa ?prefixlen 64 ?scopeid 0x20<link>
? ? ? ? ether 00:0c:29:45:bf:1e ?txqueuelen 1000 ?(Ethernet)
? ? ? ? RX packets 12408 ?bytes 1827768 (1.7 MiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 246 ?bytes 31464 (30.7 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
復制一份直接修改配置文件:
[root@CENTOS7 network-scripts]#cp ifcfg-home-eth1 ifcfg-home1-eth1
[root@CENTOS7 network-scripts]#ls
ifcfg-eth1 ? ? ? ?ifdown-ippp ? ?ifdown-TeamPort ?ifup-ipv6 ? ?ifup-Team
ifcfg-home1-eth1 ?ifdown-ipv6 ? ?ifdown-tunnel ? ?ifup-isdn ? ?ifup-TeamPort
ifcfg-home-eth1 ? ifdown-isdn ? ?ifup ? ? ? ? ? ? ifup-plip ? ?ifup-tunnel
[root@CENTOS7 network-scripts]#vim ifcfg-home1-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=home1-eth1
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
IPADDR=172.20.0.5
PREFIX=16
GATEWAY=172.20.0.1
DNS1=223.5.5.5
文件修改完成后 ? , ? ?看不到剛剛復制完成的文件
[root@CENTOS7 network-scripts]#nmcli connection show
NAME ? ? ? ? ? ? ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
Wired connection 1 ?33424e5b-2b3d-32bc-b8a8-ac48620fd6fe ?802-3-ethernet ?eth0
eth1 ? ? ? ? ? ? ? ?e5e67bba-e114-4426-ba5f-59e58f0adeed ?802-3-ethernet ?eth1
home-eth1 ? ? ? ? ? baceab37-6abd-3c3e-a886-5b1513017d6b ?802-3-ethernet ?—
用[root@CENTOS7 network-scripts]#nmcli connection ?reload ?從新加載一下
[root@CENTOS7 network-scripts]#nmcli connection show
NAME ? ? ? ? ? ? ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
Wired connection 1 ?33424e5b-2b3d-32bc-b8a8-ac48620fd6fe ?802-3-ethernet ?eth0
eth1 ? ? ? ? ? ? ? ?e5e67bba-e114-4426-ba5f-59e58f0adeed ?802-3-ethernet ?eth1
home-eth1 ? ? ? ? ? baceab37-6abd-3c3e-a886-5b1513017d6b ?802-3-ethernet ?—
home1-eth1 ? ? ? ? ?e7f691d1-692a-9f73-a363-87e1e480a545 ?802-3-ethernet ?—
就能看到這個文件了。
刪除不想要的配置文件
[root@CENTOS7 network-scripts]#nmcli connection delete ?home-eth1
Connection ‘home-eth1’ (baceab37-6abd-3c3e-a886-5b1513017d6b) successfully deleted.
[root@CENTOS7 network-scripts]#nmcli connection delete ?home1-eth1
Connection ‘home1-eth1’ (e7f691d1-692a-9f73-a363-87e1e480a545) successfully deleted.
[root@CENTOS7 network-scripts]#ls ? ?文件已經刪除
ifcfg-eth1 ? ifdown-isdn ? ? ?ifup ? ? ? ? ?ifup-plip ? ? ?ifup-tunnel
ifcfg-lo ? ? ifdown-post ? ? ?ifup-aliases ?ifup-plusb ? ? ifup-wireless
[root@CENTOS7 network-scripts]#nmcli connection show ? ? ?文件已經刪除
NAME ? ? ? ? ? ? ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
Wired connection 1 ?33424e5b-2b3d-32bc-b8a8-ac48620fd6fe ?802-3-ethernet ?eth0
eth1 ? ? ? ? ? ? ? ?e5e67bba-e114-4426-ba5f-59e58f0adeed ?802-3-ethernet ?eth1
使用nmcli 停用網卡
[root@CENTOS7 network-scripts]#nmcli device disconnect eth1
Device ‘eth1’ successfully disconnected.
[root@CENTOS7 network-scripts]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? inet 192.168.30.101 ?netmask 255.255.255.0 ?broadcast 192.168.30.255
? ? ? ? inet6 fe80::f620:6ab3:e2e5:44 ?prefixlen 64 ?scopeid 0x20<link>
? ? ? ? ether 00:0c:29:45:bf:14 ?txqueuelen 1000 ?(Ethernet)
? ? ? ? RX packets 3187 ?bytes 283149 (276.5 KiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 2187 ?bytes 313340 (305.9 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
? ? ? ? ether 00:0c:29:45:bf:1e ?txqueuelen 1000 ?(Ethernet)
? ? ? ? RX packets 19452 ?bytes 2931408 (2.7 MiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 293 ?bytes 37871 (36.9 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> ?mtu 65536
? ? ? ? inet 127.0.0.1 ?netmask 255.0.0.0
? ? ? ? inet6 ::1 ?prefixlen 128 ?scopeid 0x10<host>
? ? ? ? loop ?txqueuelen 1 ?(Local Loopback)
? ? ? ? RX packets 84 ?bytes 9828 (9.5 KiB)
? ? ? ? RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
? ? ? ? TX packets 84 ?bytes 9828 (9.5 KiB)
? ? ? ? TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
[root@CENTOS7 network-scripts]#ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
? ? link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
? ? link/ether 00:0c:29:45:bf:14 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
? ? link/ether 00:0c:29:45:bf:1e brd ff:ff:ff:ff:ff:ff
啟用eth1
root@CENTOS7 network-scripts]#nmcli device connect eth1
Device ‘eth1’ successfully activated with ‘e5e67bba-e114-4426-ba5f-59e58f0adeed’.
使用nmcli顯示網卡的詳細信息
[root@CENTOS7 network-scripts]#nmcli connection show eth1
connection.id: ? ? ? ? ? ? ? ? ? ? ? ? ?eth1
connection.uuid: ? ? ? ? ? ? ? ? ? ? ? ?e5e67bba-e114-4426-ba5f-59e58f0adeed
connection.stable-id: ? ? ? ? ? ? ? ? ? —
connection.interface-name: ? ? ? ? ? ? ?eth1
connection.type: ? ? ? ? ? ? ? ? ? ? ? ?802-3-ethernet
connection.autoconnect: ? ? ? ? ? ? ? ? yes
connection.autoconnect-priority: ? ? ? ?0
connection.autoconnect-retries: ? ? ? ? -1 (default)
connection.timestamp: ? ? ? ? ? ? ? ? ? 1525330988
connection.read-only: ? ? ? ? ? ? ? ? ? no
connection.permissions: ? ? ? ? ? ? ? ? —
connection.zone: ? ? ? ? ? ? ? ? ? ? ? ?—
connection.master: ? ? ? ? ? ? ? ? ? ? ?—
connection.slave-type: ? ? ? ? ? ? ? ? ?—
connection.autoconnect-slaves: ? ? ? ? ?-1 (default)
connection.secondaries: ? ? ? ? ? ? ? ? —
connection.gateway-ping-timeout: ? ? ? ?0
connection.metered: ? ? ? ? ? ? ? ? ? ? unknown
connection.lldp: ? ? ? ? ? ? ? ? ? ? ? ?-1 (default)
802-3-ethernet.port: ? ? ? ? ? ? ? ? ? ?—
802-3-ethernet.speed: ? ? ? ? ? ? ? ? ? 0
802-3-ethernet.duplex: ? ? ? ? ? ? ? ? ?—
802-3-ethernet.auto-negotiate: ? ? ? ? ?no
802-3-ethernet.mac-address: ? ? ? ? ? ? —
802-3-ethernet.cloned-mac-address: ? ? ?—
802-3-ethernet.generate-mac-address-mask:–
802-3-ethernet.mac-address-blacklist: ? —
802-3-ethernet.mtu: ? ? ? ? ? ? ? ? ? ? auto
802-3-ethernet.s390-subchannels: ? ? ? ?—
802-3-ethernet.s390-nettype: ? ? ? ? ? ?—
802-3-ethernet.s390-options: ? ? ? ? ? ?—
802-3-ethernet.wake-on-lan: ? ? ? ? ? ? 1 (default)
802-3-ethernet.wake-on-lan-password: ? ?—
ipv4.method: ? ? ? ? ? ? ? ? ? ? ? ? ? ?auto
ipv4.dns: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? —
ipv4.dns-search: ? ? ? ? ? ? ? ? ? ? ? ?—
ipv4.dns-options: ? ? ? ? ? ? ? ? ? ? ? (default)
ipv4.dns-priority: ? ? ? ? ? ? ? ? ? ? ?0
ipv4.addresses: ? ? ? ? ? ? ? ? ? ? ? ? —
ipv4.gateway: ? ? ? ? ? ? ? ? ? ? ? ? ? —
ipv4.routes: ? ? ? ? ? ? ? ? ? ? ? ? ? ?—
ipv4.route-metric: ? ? ? ? ? ? ? ? ? ? ?-1
ipv4.ignore-auto-routes: ? ? ? ? ? ? ? ?no
ipv4.ignore-auto-dns: ? ? ? ? ? ? ? ? ? no
ipv4.dhcp-client-id: ? ? ? ? ? ? ? ? ? ?—
ipv4.dhcp-timeout: ? ? ? ? ? ? ? ? ? ? ?0
ipv4.dhcp-send-hostname: ? ? ? ? ? ? ? ?yes
ipv4.dhcp-hostname: ? ? ? ? ? ? ? ? ? ? —
ipv4.dhcp-fqdn: ? ? ? ? ? ? ? ? ? ? ? ? —
ipv4.never-default: ? ? ? ? ? ? ? ? ? ? no
ipv4.may-fail: ? ? ? ? ? ? ? ? ? ? ? ? ?yes
ipv4.dad-timeout: ? ? ? ? ? ? ? ? ? ? ? -1 (default)
ipv6.method: ? ? ? ? ? ? ? ? ? ? ? ? ? ?auto
ipv6.dns: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? —
ipv6.dns-search: ? ? ? ? ? ? ? ? ? ? ? ?—
ipv6.dns-options: ? ? ? ? ? ? ? ? ? ? ? (default)
ipv6.dns-priority: ? ? ? ? ? ? ? ? ? ? ?0
ipv6.addresses: ? ? ? ? ? ? ? ? ? ? ? ? —
ipv6.gateway: ? ? ? ? ? ? ? ? ? ? ? ? ? —
ipv6.routes: ? ? ? ? ? ? ? ? ? ? ? ? ? ?—
ipv6.route-metric: ? ? ? ? ? ? ? ? ? ? ?-1
ipv6.ignore-auto-routes: ? ? ? ? ? ? ? ?no
ipv6.ignore-auto-dns: ? ? ? ? ? ? ? ? ? no
ipv6.never-default: ? ? ? ? ? ? ? ? ? ? no
ipv6.may-fail: ? ? ? ? ? ? ? ? ? ? ? ? ?yes
ipv6.ip6-privacy: ? ? ? ? ? ? ? ? ? ? ? -1 (unknown)
ipv6.addr-gen-mode: ? ? ? ? ? ? ? ? ? ? stable-privacy
ipv6.dhcp-send-hostname: ? ? ? ? ? ? ? ?yes
ipv6.dhcp-hostname: ? ? ? ? ? ? ? ? ? ? —
ipv6.token: ? ? ? ? ? ? ? ? ? ? ? ? ? ? —
proxy.method: ? ? ? ? ? ? ? ? ? ? ? ? ? none
proxy.browser-only: ? ? ? ? ? ? ? ? ? ? no
proxy.pac-url: ? ? ? ? ? ? ? ? ? ? ? ? ?—
proxy.pac-script: ? ? ? ? ? ? ? ? ? ? ? —
GENERAL.NAME: ? ? ? ? ? ? ? ? ? ? ? ? ? eth1
GENERAL.UUID: ? ? ? ? ? ? ? ? ? ? ? ? ? e5e67bba-e114-4426-ba5f-59e58f0adeed
GENERAL.DEVICES: ? ? ? ? ? ? ? ? ? ? ? ?eth1
GENERAL.STATE: ? ? ? ? ? ? ? ? ? ? ? ? ?activated
GENERAL.DEFAULT: ? ? ? ? ? ? ? ? ? ? ? ?yes
GENERAL.DEFAULT6: ? ? ? ? ? ? ? ? ? ? ? no
GENERAL.VPN: ? ? ? ? ? ? ? ? ? ? ? ? ? ?no
GENERAL.ZONE: ? ? ? ? ? ? ? ? ? ? ? ? ? —
GENERAL.DBUS-PATH: ? ? ? ? ? ? ? ? ? ? ?/org/freedesktop/NetworkManager/ActiveConnection/6
GENERAL.CON-PATH: ? ? ? ? ? ? ? ? ? ? ? /org/freedesktop/NetworkManager/Settings/4
GENERAL.SPEC-OBJECT: ? ? ? ? ? ? ? ? ? ?—
GENERAL.MASTER-PATH: ? ? ? ? ? ? ? ? ? ?—
IP4.ADDRESS[1]: ? ? ? ? ? ? ? ? ? ? ? ? 172.20.109.255/16
IP4.GATEWAY: ? ? ? ? ? ? ? ? ? ? ? ? ? ?172.20.0.1
IP4.DNS[1]: ? ? ? ? ? ? ? ? ? ? ? ? ? ? 223.5.5.5
IP4.DNS[2]: ? ? ? ? ? ? ? ? ? ? ? ? ? ? 223.6.6.6
IP4.DOMAIN[1]: ? ? ? ? ? ? ? ? ? ? ? ? ?magedu.com
DHCP4.OPTION[1]: ? ? ? ? ? ? ? ? ? ? ? ?requested_routers = 1
DHCP4.OPTION[2]: ? ? ? ? ? ? ? ? ? ? ? ?requested_domain_search = 1
DHCP4.OPTION[3]: ? ? ? ? ? ? ? ? ? ? ? ?dhcp_server_identifier = 172.20.0.1
DHCP4.OPTION[4]: ? ? ? ? ? ? ? ? ? ? ? ?requested_time_offset = 1
DHCP4.OPTION[5]: ? ? ? ? ? ? ? ? ? ? ? ?requested_domain_name = 1
DHCP4.OPTION[6]: ? ? ? ? ? ? ? ? ? ? ? ?filename = pxelinux.0
DHCP4.OPTION[7]: ? ? ? ? ? ? ? ? ? ? ? ?requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[8]: ? ? ? ? ? ? ? ? ? ? ? ?requested_classless_static_routes = 1
DHCP4.OPTION[9]: ? ? ? ? ? ? ? ? ? ? ? ?requested_wpad = 1
DHCP4.OPTION[10]: ? ? ? ? ? ? ? ? ? ? ? requested_broadcast_address = 1
DHCP4.OPTION[11]: ? ? ? ? ? ? ? ? ? ? ? next_server = 172.20.0.1
DHCP4.OPTION[12]: ? ? ? ? ? ? ? ? ? ? ? broadcast_address = 172.20.255.255
DHCP4.OPTION[13]: ? ? ? ? ? ? ? ? ? ? ? requested_interface_mtu = 1
DHCP4.OPTION[14]: ? ? ? ? ? ? ? ? ? ? ? requested_subnet_mask = 1
DHCP4.OPTION[15]: ? ? ? ? ? ? ? ? ? ? ? expiry = 1525417388
DHCP4.OPTION[16]: ? ? ? ? ? ? ? ? ? ? ? dhcp_message_type = 5
DHCP4.OPTION[17]: ? ? ? ? ? ? ? ? ? ? ? ip_address = 172.20.109.255
DHCP4.OPTION[18]: ? ? ? ? ? ? ? ? ? ? ? routers = 172.20.0.1
DHCP4.OPTION[19]: ? ? ? ? ? ? ? ? ? ? ? domain_name = magedu.com
DHCP4.OPTION[20]: ? ? ? ? ? ? ? ? ? ? ? requested_static_routes = 1
DHCP4.OPTION[21]: ? ? ? ? ? ? ? ? ? ? ? requested_nis_servers = 1
DHCP4.OPTION[22]: ? ? ? ? ? ? ? ? ? ? ? requested_ntp_servers = 1
DHCP4.OPTION[23]: ? ? ? ? ? ? ? ? ? ? ? requested_domain_name_servers = 1
DHCP4.OPTION[24]: ? ? ? ? ? ? ? ? ? ? ? dhcp_lease_time = 86400
DHCP4.OPTION[25]: ? ? ? ? ? ? ? ? ? ? ? domain_name_servers = 223.5.5.5 223.6.6.6
DHCP4.OPTION[26]: ? ? ? ? ? ? ? ? ? ? ? requested_ms_classless_static_routes = 1
DHCP4.OPTION[27]: ? ? ? ? ? ? ? ? ? ? ? subnet_mask = 255.255.0.0
DHCP4.OPTION[28]: ? ? ? ? ? ? ? ? ? ? ? network_number = 172.20.0.0
DHCP4.OPTION[29]: ? ? ? ? ? ? ? ? ? ? ? requested_host_name = 1
DHCP4.OPTION[30]: ? ? ? ? ? ? ? ? ? ? ? requested_nis_domain = 1
IP6.ADDRESS[1]: ? ? ? ? ? ? ? ? ? ? ? ? fe80::1ac:8bc5:45a2:ba5c/64
IP6.GATEWAY: ? ? ? ? ? ? ? ? ? ? ? ? ? ?—
網絡配置文件
?設備配置被保存在文本文件中
? /etc/sysconfig/network-scripts/ifcfg-<name>
? 幫助文檔列出完整選項列表:/usr/share/doc/initcripts-
*/sysconfig.txt
動態配置 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 靜態配置
DEVICE=ethX ? ? ? ? ? ? ? ? ? ? ? ? DEVICE=ethX
HWADDR=0:02:8A:A6:30:45 ? ? ? ? ? ? HWADDR=0:02:8A:A6:30:45
BOOTPROTO=dhcp ONBOOT=yes ? ? ? ? ? IPADDR=192.168.0.123
Type=Ethernet ? ? ? ? ? ? ? ? ? ? ? NETMASK=255.255.255.0
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? GATEWAY=192.168.0.254
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ONBOOT=yes
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Type=Ethernet
?nmcli命令
??修改連接配置后,需要重新加載配置
nmcli con reload
nmcli con down “system eth0” 可被自動激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用網卡,訪止被自動激活
?圖形工具
nm-connection-editor
?字符工具
nmtui
nmtui-connect
nmtui-edit
nmtui-hostname
在centos7中有專門的命令
hostnamectl set-hostname centos74.magedu.com
但是要自己去修改 vim /etc/hosts
nmcli實現bonding
? 添加bonding接口
nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
? 添加從屬接口
nmcli con add type bond-slave ifname ens7 master mybond0
nmcli con add type bond-slave ifname ens3 master mybond0
注:如無為從屬接口提供連接名,則該名稱是接口名稱加類型構成
? 要啟動綁定,則必須首先啟動從屬接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
? 啟動綁定
nmcli con up mybond0
網絡組Network Teaming
?網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量
?網絡組不同于舊版中bonding技術,提供更好的性能和擴展性
?網絡組由內核驅動和teamd守護進程實現.
?多種方式runner
broadcast
roundrobin
activebackup
loadbalance
lacp (implements the 802.3ad Link Aggregation Control Protocol)
網絡組
?啟動網絡組接口不會自動啟動網絡組中的port接口
?啟動網絡組接口中的port接口總會自動啟動網絡組接口
?禁用網絡組接口會自動禁用網絡組中的port接口
?沒有port接口的網絡組接口可以啟動靜態IP連接
?啟用DHCP連接時,沒有port接口的網絡組會等待port接口的加入
創建網絡組接口
?nmcli con add type team con-name ?CNAME ifname INAME [config JSON ]
CNAME 連接名, INAME 接口名
JSON 指定runner方式
格式:'{“runner”: {“name”: ” METHOD “}}’
METHOD 可以是broadcast, roundrobin,
activebackup, loadbalance, lacp
創建port接口
?nmcli con add type team-slave con-name ?CNAME ifname INAME master
TEAM
CNAME 連接名
INAME 網絡接口名
TEAM 網絡組接口名
?連接名若不指定,默認為team-slave- IFACE
?nmcli dev dis ?INAME
?nmcli con up ?CNAME
INAME 設備名 CNAME 網絡組接口名或port接口
網絡組示例
?nmcli con add type team con-name team0 ifname team0 config
‘{“runner”: {“name”: “loadbalance”}}’
?nmcli con mod team0 ipv4.addresses 192.168.1.100/24
?nmcli con mod team0 ipv4.method manual
?nmcli con add con-name team0-eth1 type team-slave ifname eth1
master team0
?nmcli con add con-name team0-eth2 type team-slave ifname eth2
master team0
?nmcli con up team0
?nmcli con up team0-eth1
?nmcli con up team0-eth2
?teamdctl team0 state; nmcli dev dis eth1
實驗:創建網絡組
?ip link
?nmcli con add type team con-name team0 ifname team0 config
‘{“runner”: {“name”: “activebackup”}}’
?nmcli con mod team0 ipv4.addresses ‘192.168.0.100/24’
?nmcli con mod team0 ipv4.method manual
?nmcli con add con-name team0-port1 type team-slave ifname eth1
master team0
?nmcli con add con-name team0-port2 type team-slave ifname eth2
master team0
?teamdctl team0 state
實驗:創建網絡組
?ping -I team0 192.168.0.254
?nmcli dev dis eno1
?teamdctl team0 state
?nmcli con up team0-port1
?nmcli dev dis eno2
?teamdctl team0 state
?nmcli con up team0-port2
?teamdctl team0 state
網橋
?橋接:把一臺機器上的若干個網絡接口“連接”起來。其結果是,其中一個網
口收到的報文會被復制給其他網口并發送出去。以使得網口之間的報文能夠互
相轉發。網橋就是這樣一個設備,它有若干個網口,并且這些網口是橋接起來
的。與網橋相連的主機就能通過交換機的報文轉發而互相通信。
?主機A發送的報文被送到交換機S1的eth0口,由于eth0與eth1、eth2橋接在一
起,故而報文被復制到eth1和eth2,并且發送出去,然后被主機B和交換機S2
接收到。而S2又會將報文轉發給主機C、D。
配置實現網橋
? 創建軟件網橋
nmcli con add type bridge con-name br0 ifname br0
nmcli connection modify br0 ipv4.addresses 192.168.74.100/24
ipv4.method manuall
nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master
br0
? 查看網橋
cat /etc/sysconfig/network-scripts/ifcfg-br0
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
brctl show
? 刪除網橋 brctl delbr br0
? 刪除網橋中網卡 brctl delif eth0
? 注意:NetworkManager只支持以太網接口接口連接到網橋,不支持聚合接口
mntui 命令行中的字符文件修改
─┤ NetworkManager TUI ├──┐
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ ? ? ? ? ? ? ? ? ? ? ? ? │
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ Please select an option │
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ ? ? ? ? ? ? ? ? ? ? ? ? │
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ Edit a connection ? ? ? │
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ Activate a connection ? │
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ Set system hostname ? ? │
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ ? ? ? ? ? ? ? ? ? ? ? ? │
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ Quit ? ? ? ? ? ? ? ? ? ?│
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ ? ? ? ? ? ? ? ? ? ? ? ? │
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ ? ? ? ? ? ? ? ? ? ?<OK> │
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│ ? ? ? ? ? ? ? ? ? ? ? ? │
測試網絡工具
? 在命令行下測試網絡的連通性
? 顯示主機名
hostname
? 測試網絡連通性
ping
mtr
? 顯示正確的路由表
ip route
? 確定名稱服務器使用:
? nslookup
? host
? dig
? 跟蹤路由
? traceroute
? tracepath
網絡客戶端工具
?ftp,lftp:子命令:get、mget、ls、help
lftp [-p port] [-u user[,password]] SERVER
?lftpget URL
?wget [option]… [URL]…
-q: 靜默模式
-c: 斷點續傳
-P:保存在指定目錄
-O: 保存為指定的文件名
–limit-rate=: 指定傳輸速率,單位K,M等
?links URL ? ?字符界面瀏覽器
–dump
–source
links www.baidu.com
links www.baidu.com –source 查看百度的源碼
links www.baidu.com –dump 查看所有文字
[root@CENTOS7 ~]#wget ftp://172.20.0.1/pub/ISOs/cirros-0.3.0-x86_64-disk.img –limit-rate=1024000 字節為單位 ? 限速下載
–2018-05-03 16:19:36– ?ftp://172.20.0.1/pub/ISOs/cirros-0.3.0-x86_64-disk.img
? ? ? ? ? ?=> ‘cirros-0.3.0-x86_64-disk.img’
Connecting to 172.20.0.1:21… connected.
Logging in as anonymous … Logged in!
==> SYST … done. ? ?==> PWD … done.
==> TYPE I … done. ?==> CWD (1) /pub/ISOs … done.
==> SIZE cirros-0.3.0-x86_64-disk.img … 9761280
==> PASV … done. ? ?==> RETR cirros-0.3.0-x86_64-disk.img … done.
Length: 9761280 (9.3M) (unauthoritative)
100%[===============================================>] 9,761,280 ? 1022KB/s ? in 9.5s
2018-05-03 16:19:45 (1006 KB/s) – ‘cirros-0.3.0-x86_64-disk.img’ saved [9761280]
[root@CENTOS7 ~]#ftp 172.20.0.1
Connected to 172.20.0.1 (172.20.0.1).
220 (vsFTPd 2.2.2)
Name (172.20.0.1:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 “/”
ftp> ls
227 Entering Passive Mode (172,20,0,1,153,217).
150 Here comes the directory listing.
drwxr-xr-x ? 21 0 ? ? ? ?0 ? ? ? ? ? ?4096 Apr 09 10:44 pub
226 Directory send OK.
ftp> cd pub
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (172,20,0,1,173,48).
150 Here comes the directory listing.
drwxr-xr-x ? 38 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 07:23 Books
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Jan 16 07:30 Files
drwxr-xr-x ? ?5 0 ? ? ? ?0 ? ? ? ? ? ?4096 Apr 04 05:31 ISOs
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 05:46 LFS
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 05:48 Oracle
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 05:48 RHCE
drwxr-xr-x ? 12 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:12 Sources
drwxr-xr-x ? 12 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 07:23 Tools
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:18 Videos
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 04:30 blogs
drwxr-xr-x ? ?3 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 04:37 errata
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 04:37 exam
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ?338796 Nov 10 06:18 getty
drwxr-xr-x ? ?5 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 04:37 gls
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Apr 09 10:44 google_containers
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 04:37 images
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ?338796 Nov 10 06:18 login
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 05:46 named
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 05:48 pictures
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:12 sysroot
drwxr-xr-x ? ?3 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:18 updates
226 Directory send OK.
ftp> cd tools
550 Failed to change directory.
ftp> cd Tools
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (172,20,0,1,130,154).
150 Here comes the directory listing.
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?220402254 Nov 10 06:12 Adobe Acrobat Professional 7.0.RAR
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:12 Edraw
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?65071840 Nov 10 06:12 EdrawSoft_Edraw_Max.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?18290688 Nov 10 06:12 FeiQ.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?39011832 Nov 10 06:12 FileFormatConverters.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 4251204 Nov 05 06:48 FileZilla_3.3.5.1_win32-setup.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 4518720 Nov 10 06:12 FileZilla_3.5.3_win32-setup.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 1620836 Nov 10 06:12 FileZilla_Server-0_9_41.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?24850592 Nov 10 06:13 Firefox-full-latest-23.0.1.4974.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 4076643 Nov 10 06:12 FlashFXP.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 6595938 Nov 10 06:13 FullSync-0.10.1-Windows.msi
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?31168480 Nov 10 06:13 Git-2.8.1-64-bit.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?15801540 Nov 10 06:13 HttpWatch.Professional.v7.1.37.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?15814479 Nov 10 06:13 HttpWatchPro-ha-crack.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 2032280 Nov 10 06:13 MakeSignGif.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?78817269 Nov 10 06:13 Mindmanager_9.1.157.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?17261852 Nov 10 06:13 Navicat.for.MySQL.Enterprise.v10.0.8.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?31022640 Nov 10 06:13 Opera_15.0.1147.141_Setup.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 3678601 Nov 10 06:13 SQL-Front_Setup.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?17779313 Nov 10 06:13 SQLyog Ultimate 9.6.2.0.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 6315838 Nov 10 06:13 SQLyog_Enterprise.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?59915640 Nov 05 06:48 SecureCRT and SecureFX v8.0.1 build 1082 正式版.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?10739967 Nov 10 06:13 SecureCRT_HH_x86_7.0.0.326_PortableSoft.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 9256915 Nov 10 06:13 Securecrt+6.0.2+build+260.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?69387314 Nov 10 06:13 ToadForMySQL_Beta_6.7.0.1273.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?565726726 Nov 10 06:18 VMwareFusion603.dmg
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?31723343 Nov 10 06:13 VanDyke SecureCRT v7.2.6 with Keygen.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?14580269 Nov 10 06:13 VanDyke.SecureCRT.v7.0.0.326.Incl.Patch.And.Keymaker-ZWT (1).rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?111197384 Nov 10 06:14 VirtualBox-4.3.24-98716-Win.1425444683.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?55118440 Nov 10 06:13 Visio2003_SP3.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 1456984 Nov 10 06:17 WinRAR_3.90_SC.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?29857792 Nov 10 06:17 Wireshark-win64-1.12.7.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?93801639 Nov 10 06:18 Xmanager Enterprise 4 Build 0232.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?52437791 Nov 05 06:49 Xmanager Enterprise 5 Build 0576 & Keygen.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?85509672 Nov 10 06:12 avira_antivirus_premium_zhcn.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ? ?1873 Nov 10 06:12 avira_p_20130108.rar
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:12 camtasia 6.0.2
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ? ? ? 0 Nov 10 06:12 down.php_softid=432463
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?44349411 Nov 10 06:12 edrawmax.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 4275944 Nov 10 06:13 lantern-installer-beta.exe
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:13 ldapbrowser
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 9653716 Nov 10 06:13 mySQLYogEnterprise.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 7945210 Nov 10 06:13 npp.6.6.9.Installer.1410249599.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?12883976 Nov 10 06:13 picpick_inst.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ?495616 Nov 10 06:13 putty.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?20213228 Nov 10 06:13 sandcat-browser-2.02-beta.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 8888512 Nov 10 06:13 sogou_wubi_20a.exe
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:13 sublime
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 5118120 Nov 10 06:13 tigervnc-1.1.90.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ? ? ?29 Nov 10 06:13 visio-2003-sn.txt
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?30503216 Nov 10 06:13 vlc-2.2.3-win32.exe
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 05 06:48 vmware
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:14 vmware 11
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:14 vmware 9
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:16 vmware12
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:17 vnc
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:17 vnc-win32
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?158015528 Nov 10 06:17 wps-office-8.1.0.3724-0.1.b1p2.i686.rpm
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ?437906 Nov 05 06:48 屏幕畫筆 Pointofix 1.7 Portable.exe
226 Directory send OK.
ftp> get putty.exe
local: putty.exe remote: putty.exe
227 Entering Passive Mode (172,20,0,1,171,109).
150 Opening BINARY mode data connection for putty.exe (495616 bytes).
226 Transfer complete.
495616 bytes received in 0.0917 secs (5406.58 Kbytes/sec)
ftp> !ls ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?!ls查看本機的文件,ls查看的是FTP中的文件
11.sh f1 ? ? ? Music ?Videos
80.sh f11 ? ? ? Pictures ? vsftpd-3.0.2-22.el7.x86_64.rpm
anaconda-ks.cfg ?fff ? ? ? Public ?yesno.sh
bin ff.sh ? ? ? putty.exe
Desktop id.sh ? ? ? reset.sh
Documents initial-setup-ks.cfg ?Templates
ftp> put 11.sh
local: 11.sh remote: 11.sh
227 Entering Passive Mode (172,20,0,1,142,194).
550 Permission denied.
ftp> ls
227 Entering Passive Mode (172,20,0,1,21,218).
150 Here comes the directory listing.
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?220402254 Nov 10 06:12 Adobe Acrobat Professional 7.0.RAR
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:12 Edraw
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?65071840 Nov 10 06:12 EdrawSoft_Edraw_Max.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?18290688 Nov 10 06:12 FeiQ.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?39011832 Nov 10 06:12 FileFormatConverters.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 4251204 Nov 05 06:48 FileZilla_3.3.5.1_win32-setup.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 4518720 Nov 10 06:12 FileZilla_3.5.3_win32-setup.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 1620836 Nov 10 06:12 FileZilla_Server-0_9_41.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?24850592 Nov 10 06:13 Firefox-full-latest-23.0.1.4974.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 4076643 Nov 10 06:12 FlashFXP.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 6595938 Nov 10 06:13 FullSync-0.10.1-Windows.msi
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?31168480 Nov 10 06:13 Git-2.8.1-64-bit.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?15801540 Nov 10 06:13 HttpWatch.Professional.v7.1.37.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?15814479 Nov 10 06:13 HttpWatchPro-ha-crack.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 2032280 Nov 10 06:13 MakeSignGif.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?78817269 Nov 10 06:13 Mindmanager_9.1.157.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?17261852 Nov 10 06:13 Navicat.for.MySQL.Enterprise.v10.0.8.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?31022640 Nov 10 06:13 Opera_15.0.1147.141_Setup.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 3678601 Nov 10 06:13 SQL-Front_Setup.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?17779313 Nov 10 06:13 SQLyog Ultimate 9.6.2.0.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 6315838 Nov 10 06:13 SQLyog_Enterprise.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?59915640 Nov 05 06:48 SecureCRT and SecureFX v8.0.1 build 1082 正式版.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?10739967 Nov 10 06:13 SecureCRT_HH_x86_7.0.0.326_PortableSoft.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 9256915 Nov 10 06:13 Securecrt+6.0.2+build+260.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?69387314 Nov 10 06:13 ToadForMySQL_Beta_6.7.0.1273.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?565726726 Nov 10 06:18 VMwareFusion603.dmg
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?31723343 Nov 10 06:13 VanDyke SecureCRT v7.2.6 with Keygen.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?14580269 Nov 10 06:13 VanDyke.SecureCRT.v7.0.0.326.Incl.Patch.And.Keymaker-ZWT (1).rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?111197384 Nov 10 06:14 VirtualBox-4.3.24-98716-Win.1425444683.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?55118440 Nov 10 06:13 Visio2003_SP3.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 1456984 Nov 10 06:17 WinRAR_3.90_SC.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?29857792 Nov 10 06:17 Wireshark-win64-1.12.7.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?93801639 Nov 10 06:18 Xmanager Enterprise 4 Build 0232.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?52437791 Nov 05 06:49 Xmanager Enterprise 5 Build 0576 & Keygen.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?85509672 Nov 10 06:12 avira_antivirus_premium_zhcn.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ? ?1873 Nov 10 06:12 avira_p_20130108.rar
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:12 camtasia 6.0.2
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ? ? ? 0 Nov 10 06:12 down.php_softid=432463
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?44349411 Nov 10 06:12 edrawmax.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 4275944 Nov 10 06:13 lantern-installer-beta.exe
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:13 ldapbrowser
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 9653716 Nov 10 06:13 mySQLYogEnterprise.rar
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 7945210 Nov 10 06:13 npp.6.6.9.Installer.1410249599.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?12883976 Nov 10 06:13 picpick_inst.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ?495616 Nov 10 06:13 putty.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?20213228 Nov 10 06:13 sandcat-browser-2.02-beta.zip
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 8888512 Nov 10 06:13 sogou_wubi_20a.exe
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:13 sublime
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? 5118120 Nov 10 06:13 tigervnc-1.1.90.exe
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ? ? ?29 Nov 10 06:13 visio-2003-sn.txt
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?30503216 Nov 10 06:13 vlc-2.2.3-win32.exe
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 05 06:48 vmware
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:14 vmware 11
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:14 vmware 9
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:16 vmware12
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:17 vnc
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 Nov 10 06:17 vnc-win32
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ?158015528 Nov 10 06:17 wps-office-8.1.0.3724-0.1.b1p2.i686.rpm
-rw-r–r– ? ?1 0 ? ? ? ?0 ? ? ? ? ?437906 Nov 05 06:48 屏幕畫筆 Pointofix 1.7 Portable.exe
226 Directory send OK.
ftp> mget wps* ? ? ? ? ? ? ? ? ? ? ? ? ? mget下載多個文件,mput上傳多個文件
mget wps-office-8.1.0.3724-0.1.b1p2.i686.rpm? y
227 Entering Passive Mode (172,20,0,1,250,49).
150 Opening BINARY mode data connection for wps-office-8.1.0.3724-0.1.b1p2.i686.rpm (158015528 bytes).
226 Transfer complete.
158015528 bytes received in 32.6 secs (4840.51 Kbytes/sec)
ftp> ^C
ftp>
lftp帶顏色比ftp好用
在腳本中直接下載
lftpget ftp://172.20.0.1/pub/Tools/picpick_inst.exe ?只支持ftp下載
wget ftp://172.20.0.1/pub/Tools/picpick_inst.exe ? ?支持所有的ftp http等下載
進程概念
? 內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等
? Process: 運行中的程序的一個副本,是被載入內存的一個指令集合
進程ID(Process ID,PID)號碼被用來標記各個進程
UID、GID、和SELinux語境決定對文件系統的存取和訪問權限,
通常從執行進程的用戶來繼承
存在生命周期
? task struct:Linux內核存儲進程信息的數據結構格式,task struct 任務結構
? task list:多個任務的的task struct組成的鏈表
? 進程創建:
init:第一個進程
父子關系
進程:都由其父進程創建,CoW(copy on write) ?寫時復制。
fork()生成子進程, clone()可以生成子進程也都可以生成兄弟進程。
程序和進程的區別:
程序表現為磁盤上的文件,靜態的沒有生命期。一個進程對應一個程序,一個程序可以對應多個進程。
進程是一個動態的概念,有生命期。
當父進程生成一個子進程的時候系統會生成一個新的子進程信息,但是他們處在同一個內存空間,只有子進程數據發生變化的時候才生成第二塊內存來單獨存放子進程。
進程的基本狀態
?創建狀態:進程在創建時需要申請一個空白PCB(process control block進程控
制塊),向其中填寫控制和管理進程的信息,完成資源分配。如果創建工作無法完
成,比如資源無法滿足,就無法被調度運行,把此時進程所處狀態稱為創建狀態
?就緒狀態:進程已準備好,已分配到所需資源,只要分配到CPU就能夠立即運行
?執行狀態:進程處于就緒狀態被調度后,進程進入執行狀態
?阻塞狀態:正在執行的進程由于某些事件(I/O請求,申請緩存區失?。┒鴷簳r
無法運行,進程受到阻塞。在滿足請求時進入就緒狀態等待系統調用
?終止狀態:進程結束,或出現錯誤,或被系統終止,進入終止狀態。無法再執行
狀態之間轉換六種情況
?運行——>就緒:1,主要是進程占用CPU的時間過長,而系統分配給該進程占
用CPU的時間是有限的;2,在采用搶先式優先級調度算法的系統中,當有更高
優先級的進程要運行時,該進程就被迫讓出CPU,該進程便由執行狀態轉變為
就緒狀態。
?就緒——>運行:運行的進程的時間片用完,調度就轉到就緒隊列中選擇合適
的進程分配CPU
?運行——>阻塞:正在執行的進程因發生某等待事件而無法執行,則進程由執
行狀態變為阻塞狀態,如發生了I/O請求
?阻塞——>就緒:進程所等待的事件已經發生,就進入就緒隊列
?以下兩種狀態是不可能發生的:
?阻塞——>運行:即使給阻塞進程分配CPU,也無法執行,操作系統在進行調
度時不會從阻塞隊列進行挑選,而是從就緒隊列中選取
?就緒——>阻塞:就緒態根本就沒有執行,談不上進入阻塞態
ps aux 可以查看系統正在運行的進程的各種狀態
以前的系統使用協作式多任務,協作式多任務就是指一個進程霸占CPU直到進程結束。
現在的系統使用搶占式多任務,按時間片分配,時間片一到就必須釋放CPU給別的進程使用。
進程優先級
?進程優先級:
系統優先級:數字越小,優先級越高
0-139(CentOS4,5)
各有140個運行隊列和過期隊列
0-98,99(CentOS6)
實時優先級: 99-0 值最大優先級最高
nice值:-20到19,對應系統優先級100-139或99
?Big O:時間復雜度,用時和規模的關系
O(1), O(logn), O(n)線性, O(n^2)拋物線, O(2^n)
進程相關概念
? 進程內存:
Page Frame: 頁框,用存儲頁面數據,存儲Page 4k
LRU:Least Recently Used 近期最少使用算法,釋放內存
物理地址空間和線性地址空間
MMU:Memory Management Unit負責轉換線性和物理地址
TLB:Translation Lookaside Buffer 翻譯后備緩沖器,用于保存虛擬地址和物理地址
映射關系的緩存
? IPC: Inter Process Communication
同一主機: signal:信號
shm: shared memory
semaphore:信號量,一種計數器
不同主機:socket: IP和端口號
RPC: remote procedure call
MQ:消息隊列,Kafka,ActiveMQ
LRU算法 ? 緩存的算法
?假設序列為 4 3 4 2 3 1 4 2
物理塊有3個,則
?第1輪 4調入內存 4
?第2輪 3調入內存 3 4
?第3輪 4調入內存 4 3
?第4輪 2調入內存 2 4 3
?第5輪 3調入內存 3 2 4
?第6輪 1調入內存 1 3 2
?第7輪 4調入內存 4 1 3
?第8輪 2調入內存 2 4 1
LRU的變種算法:訪問一次不上移,訪問多次才上移。
對于一個應用程序來說,實實在在的cpu給應用程序的空間,叫物理空間
而對于應用程序來說,覺得自己擁有全部空間,這就叫做線性空間。
MMU : ? 用來負責轉換線性內存和物理內存
LTB:存放在cup中,用來保存虛擬地址和物理地址的映射關系。
一個應用程序運行時向cpu申請1個G的內存空間,cup發現這個程序現階段運行只需要100M的內存空間就夠了
所以CUP只給程序100M的空間,但是承若當程序需要1G的空間時會給予分配。這是承若分配內存空間和實際分配內存空間。
[root@CENTOS7 ~]#ps aux ?承若的內存空間 ? 實際的內存空間
USER ? ? ? ?PID %CPU %MEM ? ? ? VSZ ? ? ? ? ? ? ?RSS TTY ? ? ?STAT START ? TIME COMMAND
root ? ? ? ? ?1 ?0.0 ?0.4 ? ? ?128164 ? ? ? ? ? ? ?5476 ? ? ? ? ?Ss ? 14:16 ? 0:02 /usr/lib/systemd/system
一個電腦上多個進程之間如何通訊
機: signal:信號
shm: shared memory :將數據放到共有的空間中
semaphore:信號量,一種計數器:10個信號量,每一個進程占據一個信號量,當10個都用完時,等待前面的程序用完后面的程序才可以使用
不同主機:socket: IP和端口號
RPC: remote procedure call ? A機器上跑的一個程序,跑了一會后到B機器上去調用B機器上的一個程序,之后在回到A機器上運行
A ? ? B
?→
? ? ?↓
? ? ←
MQ:消息隊列,Kafka,ActiveMQ
將各個主機的任務消息放在Kafka服務器上,再由服務器排序,按順序訪問。
進程狀態
? Linux內核:搶占式多任務
? 進程類型:
守護進程: daemon,在系統引導過程中啟動的進程,和終端無關進程
前臺進程:跟終端相關,通過終端啟動的進程
注意:兩者可相互轉化
? 進程狀態:
運行態:running
就緒態:ready
睡眠態:
可中斷:interruptable
不可中斷:uninterruptable
停止態:stopped,暫停于內存,但不會被調度,除非手動啟動
僵死態:zombie,結束進程,父進程結束前,子進程不關閉
前臺執行:如sleep占用終端資源
ps輸出屬性
? VSZ: Virtual memory SiZe,虛擬內存集,線性內存
? RSS: ReSident Size, 常駐內存集
? STAT:進程狀態
R:running
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前臺進程
l: 多線程進程 process(各種資源的融合) ?thread 線程,{}表示線程(干活的人的個數可以一個也可以多個)
L:內存分頁并帶鎖
N:低優先級進程
<: 高優先級進程
s: session leader,會話(子進程)發起者
系統管理工具
?進程的分類:
CPU-Bound:CPU密集型,非交互 ? 加密解密壓縮解壓縮都是CPU密集型
IO-Bound:IO密集型,交互 ? ? ? 讀寫一個大文件
?Linux系統狀態的查看及管理工具:pstree, ps, pidof, pgrep, top, htop,
glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup
?pstree命令:
pstree – display a tree of processes
?ps: process state ? ? 基于快照的,每次信息可能不一樣。 ?默認ps只顯示當前一個用戶一個終端開的前天進程,
ps – report a snapshot of the current processes
Linux系統各進程的相關信息均保存在/proc/PID目錄下的各文件中
pstree -p 查看系統使用的進程樹
ls /proc/ 可以看到好多數字,每一個數字都是一個進程的PID
[root@CENTOS7 ~]#ls /proc
1 ? ? 1408 ?1558 ?1852 ?292 ?5 ? ? 612 ? 706 ? 998 ? ? ? ? ?kallsyms ? ? ?slabinfo
10 ? ?1410 ?1559 ?19 ? ?293 ?5138 ?614 ? 707 ? 999 ? ? ? ? ?kcore ? ? ? ? softirqs
1006 ?1418 ?1562 ?2 ? ? 294 ?539 ? 618 ? 708 ? acpi ? ? ? ? keys ? ? ? ? ?stat
1058 ?1420 ?1563 ?20 ? ?295 ?553 ? 637 ? 712 ? asound ? ? ? key-users ? ? swaps
1098 ?1423 ?1573 ?21 ? ?296 ?554 ? 638 ? 716 ? buddyinfo ? ?kmsg ? ? ? ? ?sys
11 ? ?1427 ?1580 ?22 ? ?297 ?555 ? 639 ? 725 ? bus ? ? ? ? ?kpagecount ? ?sysrq-trigger
1100 ?1432 ?1581 ?23 ? ?298 ?556 ? 640 ? 7267 ?cgroups ? ? ?kpageflags ? ?sysvipc
1140 ?1436 ?1583 ?238 ? 3 ? ?557 ? 641 ? 757 ? cmdline ? ? ?loadavg ? ? ? timer_list
1151 ?1442 ?1589 ?239 ? 30 ? 558 ? 642 ? 8 ? ? consoles ? ? locks ? ? ? ? timer_stats
1154 ?1450 ?1601 ?24 ? ?31 ? 559 ? 645 ? 8200 ?cpuinfo ? ? ?mdstat ? ? ? ?tty
1161 ?1455 ?1687 ?240 ? 32 ? 560 ? 646 ? 8239 ?crypto ? ? ? meminfo ? ? ? uptime
1168 ?1466 ?17 ? ?241 ? 33 ? 561 ? 648 ? 8320 ?devices ? ? ?misc ? ? ? ? ?version
12 ? ?1469 ?1726 ?242 ? 377 ?562 ? 649 ? 8350 ?diskstats ? ?modules ? ? ? vmallocinfo
1236 ?1483 ?1733 ?245 ? 400 ?563 ? 650 ? 8399 ?dma ? ? ? ? ?mounts ? ? ? ?vmstat
1241 ?1489 ?1742 ?246 ? 404 ?564 ? 656 ? 8400 ?driver ? ? ? mpt ? ? ? ? ? zoneinfo
13 ? ?15 ? ?1753 ?250 ? 405 ?565 ? 657 ? 8479 ?execdomains ?mtrr
1333 ?1505 ?1755 ?251 ? 41 ? 566 ? 659 ? 8480 ?fb ? ? ? ? ? net
1350 ?1507 ?1780 ?256 ? 418 ?567 ? 66 ? ?9 ? ? filesystems ?pagetypeinfo
1355 ?1519 ?1796 ?257 ? 43 ? 568 ? 671 ? 98 ? ?fs ? ? ? ? ? partitions
1359 ?1536 ?18 ? ?288 ? 442 ?571 ? 677 ? 982 ? interrupts ? sched_debug
1380 ?1538 ?1800 ?289 ? 45 ? 572 ? 6806 ?984 ? iomem ? ? ? ?schedstat
1386 ?1547 ?1801 ?290 ? 457 ?576 ? 7 ? ? 986 ? ioports ? ? ?scsi
1403 ?1551 ?1846 ?291 ? 47 ? 577 ? 705 ? 997 ? irq ? ? ? ? ?self
[root@CENTOS7 ~]#ls /proc/1
attr ? ? ? ?coredump_filter ?gid_map ? ?mountinfo ? oom_score ? ? ?schedstat ?status
autogroup ? cpuset ? ? ? ? ? io ? ? ? ? mounts ? ? ?oom_score_adj ?sessionid ?syscall
auxv ? ? ? ?cwd ? ? ? ? ? ? ?limits ? ? mountstats ?pagemap ? ? ? ?setgroups ?task
cgroup ? ? ?environ ? ? ? ? ?loginuid ? net ? ? ? ? personality ? ?smaps ? ? ?timers
clear_refs ?exe ? ? ? ? ? ? ?map_files ?ns ? ? ? ? ?projid_map ? ? stack ? ? ?uid_map
cmdline ? ? fd ? ? ? ? ? ? ? maps ? ? ? numa_maps ? root ? ? ? ? ? stat ? ? ? wchan
comm ? ? ? ?fdinfo ? ? ? ? ? mem ? ? ? ?oom_adj ? ? sched ? ? ? ? ?statm
[root@CENTOS7 ~]#ls /proc/1/exe -l
lrwxrwxrwx. 1 root root 0 May ?3 16:00 /proc/1/exe -> /usr/lib/systemd/systemd
查看進程進程ps
? ps [OPTION]…
? 支持三種選項:
UNIX選項 如-A -e
BSD選項 ?如a
GNU選項 ?如–help
? 選項:默認顯示當前終端中的進程
? a 選項包括所有終端中的進程
? x 選項包括不鏈接終端的進程
? u 選項顯示進程所有者的信息
? f 選項顯示進程樹,相當于 –forest
? k| –sort 屬性 對屬性 排序,屬性前加- 表示倒序
? o 屬性… 選項顯示定制的信息 pid、cmd、%cpu、%mem
? L 顯示支持的屬性列表
ps 命令后面跟 a 和 -a 意思是不一樣的
查看進程進程ps
? ps [OPTION]…
? 支持三種選項:
UNIX選項 如-A -e
BSD選項 ?如a
GNU選項 ?如–help
? 選項:默認顯示當前終端中的進程
? a 選項包括所有終端中的進程
? x 選項包括不鏈接終端的進程
? u 選項顯示進程所有者的信息
? f 選項顯示進程樹,相當于 –forest
? k| –sort 屬性 對屬性 排序,屬性前加- 表示倒序
? o 屬性… 選項顯示定制的信息 pid、cmd、%cpu、%mem
? L 顯示支持的屬性列表
[wang@CENTOS7 ~]$ps xa ? ? ? ? a所有終端
?進程編號 在哪個終端上 狀態 ? ?運行了幾個時間片 ? ?命令
? ?PID ? ?TTY ? ? ? ? ?STAT ? ? TIME ? ? ? ? ? ? ?COMMAND
? ? ?1 ? ? ? ? ? ? ? ? ?Ss ? ? ? ?0:07 ? ? ? ? ? ? /usr/lib/systemd/systemd –switched-root –system –deserialize 21
? ? ?2 ? ? ? ? ? ? ? ? ?S ? ? ? ? 0:00 ? ? ? ? ? ? ?[kthreadd]
? ? ?3 ? ? ? ? ? ? ? ? ?S ? ? ? ? 0:00 ? ? ? ? ? ? ? [ksoftirqd/0]
[wang@CENTOS7 ~]$ps aux
USER ? ? ? ?PID %CPU %MEM ? ?VSZ ? RSS TTY ? ? ?STAT START ? TIME COMMAND
root ? ? ? ? ?1 ?0.0 ?0.5 193700 ?6336 ? ? ? ? ?Ss ? 08:48 ? 0:07 /usr/lib/systemd/systemd –switched-root –system
root ? ? ? ? ?2 ?0.0 ?0.0 ? ? ?0 ? ? 0 ? ? ? ? ?S ? ?08:48 ? 0:00 [kthreadd]
[wang@CENTOS7 ~]$ps auxf
USER ? ? ? ?PID %CPU %MEM ? ?VSZ ? RSS TTY ? ? ?STAT START ? TIME COMMAND
root ? ? ? ? ?2 ?0.0 ?0.0 ? ? ?0 ? ? 0 ? ? ? ? ?S ? ?08:48 ? 0:00 [kthreadd]
root ? ? ? ? ?3 ?0.0 ?0.0 ? ? ?0 ? ? 0 ? ? ? ? ?S ? ?08:48 ? 0:00 ?\_ [ksoftirqd/0]
root ? ? ? ? ?5 ?0.0 ?0.0 ? ? ?0 ? ? 0 ? ? ? ? ?S< ? 08:48 ? 0:00 ?\_ [kworker/0:0H]
root ? ? ? ? ?6 ?0.0 ?0.0 ? ? ?0 ? ? 0 ? ? ? ? ?S ? ?08:48 ? 0:02 ?\_ [kworker/u256:0]
root ? ? ? ? ?7 ?0.0 ?0.0 ? ? ?0 ? ? 0 ? ? ? ? ?S ? ?08:48 ? 0:01 ?\_ [migration/0]
[wang@CENTOS7 ~]$ps axo pid,%cpu,%mem,tty k %cpu
? ?PID %CPU %MEM TT
? ? ?1 ?0.0 ?0.5 ?
? ? ?2 ?0.0 ?0.0 ?
[wang@CENTOS7 ~]$ps axo pid,%cpu,%mem,tty,cmd k %mem ? ? 在centos6排序只按PID排,其他排序不好用
? ?PID %CPU %MEM TT ? ? ? CMD
? ? ?2 ?0.0 ?0.0 ? ? ? ? ?[kthreadd]
? ? ?3 ?0.0 ?0.0 ? ? ? ? ?[ksoftirqd/0]
? 1385 ?0.1 14.5 ? ? ? ? ?/usr/bin/gnome-shell ? ? ?占用內存最多的是圖形界面
[root@CENTOS7 ~]#free -h
? ? ? ? ? ? ? total ? ? ? ?used ? ? ? ?free ? ? ?shared ?buff/cache ? available
Mem: ? ? ? ? ? 1.0G ? ? ? ?206M ? ? ? ?513M ? ? ? ? 20M ? ? ? ?353M ? ? ? ?641M
Swap: ? ? ? ? ?2.0G ? ? ? ?604K ? ? ? ?2.0G
[root@CENTOS7 ~]#init 3 ? ? ?關閉圖形界面后使用內存變小
[root@CENTOS7 ~]#free -h
? ? ? ? ? ? ? total ? ? ? ?used ? ? ? ?free ? ? ?shared ?buff/cache ? available
Mem: ? ? ? ? ? 1.0G ? ? ? ?203M ? ? ? ?517M ? ? ? ? 20M ? ? ? ?353M ? ? ? ?645M
Swap: ? ? ? ? ?2.0G ? ? ? ?604K ? ? ? ?2.0G
[root@CENTOS7 ~]#ps L ? ?查看 ps xo 后面可跟的選項,其中euser是有效的使用者,ruser真正的使用者
%cpu ? ? ? ? %CPU
%mem ? ? ? ? %MEM
_left ? ? ? ?LLLLLLLL
在別的終端上運行
[wang@CENTOS7 ~]$passwd
Changing password for user wang.
Changing password for wang.
(current) UNIX password:
[root@CENTOS7 ~]#ps axo pid,cmd,euser,ruser ? 因為passwd上面有suid所以造成下面效果
? ?PID CMD ? ? ? ? ? ? ? ? ? ? ? ? EUSER ? ?RUSER
? 14646 passwd ? ? ? ? ? ? ? ? ? ? ?root ? ? wang
ps常見選項
? -C cmdlist 指定命令,多個命令用,分隔
? -L 顯示線程
? -e: 顯示所有進程,相當于-A
? -f: 顯示完整格式程序信息
? -F: 顯示更完整格式的進程信息
? -H: 以進程層級格式顯示進程相關信息
? -u userlist 指定有效的用戶ID或名稱
? -U userlist 指定真正的用戶ID或名稱
? -g gid或groupname 指定有效的gid或組名稱
? -G gid或groupname 指定真正的gid或組名稱
? -p pid 顯示指pid的進程
? –ppid pid 顯示屬于pid的子進程
? -M 顯示SELinux信息,相當于Z
[root@CENTOS7 ~]#ps -ef
UID ? ? ? ? PID ? PPID ?C STIME TTY ? ? ? ? ?TIME CMD
root ? ? ? ? ?1 ? ? ?0 ?0 08:48 ? ? ? ? ?00:00:08 /usr/lib/systemd/systemd –switched-root –system –deserialize 21
root ? ? ? ? ?2 ? ? ?0 ?0 08:48 ? ? ? ? ?00:00:00 [kthreadd]
[root@CENTOS7 ~]#ps -eF
UID ? ? ? ? PID ? PPID ?C ? ?SZ ? RSS PSR STIME TTY ? ? ? ? ?TIME CMD
root ? ? ? ? ?1 ? ? ?0 ?0 50474 ?5860 ? 1 08:48 ? ? ? ? ?00:00:08 /usr/lib/systemd/systemd –switched-root –system –de
root ? ? ? ? ?2 ? ? ?0 ?0 ? ? 0 ? ? 0 ? 1 08:48 ? ? ? ? ?00:00:00 [kthreadd]
[root@CENTOS7 ~]#ps -U wang ? ?查看真是用戶wang,用戶開啟的程序
? ?PID TTY ? ? ? ? ?TIME CMD
? 6137 ? ? ? ? ?00:00:00 sshd
? 6138 pts/0 ? ?00:00:00 bash
?13780 pts/0 ? ?00:00:00 su
?14592 ? ? ? ? ?00:00:00 sshd
?14593 pts/1 ? ?00:00:00 bash
?14795 pts/1 ? ?00:00:00 passwd
[root@CENTOS7 ~]#ps -u wang ?查看有效用戶是wang,用戶開啟的程序
? ?PID TTY ? ? ? ? ?TIME CMD
? 6137 ? ? ? ? ?00:00:00 sshd
? 6138 pts/0 ? ?00:00:00 bash
?14592 ? ? ? ? ?00:00:00 sshd
?14593 pts/1 ? ?00:00:00 bash
[root@CENTOS7 ~]#ps -p 14168 ? 用進程編號查看進程是什么
? ?PID TTY ? ? ? ? ?TIME CMD
?14168 ? ? ? ? ?00:00:00 gnome-shell-cal
[root@CENTOS7 ~]#ps –ppid 14130 ? ? 查看14130進程的子進程是誰
? ?PID TTY ? ? ? ? ?TIME CMD
?14153 ? ? ? ? ?00:00:00 ibus-daemon
ps輸出屬性
? ?VSZ: Virtual memory SiZe,虛擬內存集,線性內存
? ?RSS: ReSident Size, 常駐內存集
? ?STAT:進程狀態
R:running
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前臺進程
l: 多線程進程
L:內存分頁并帶鎖
N:低優先級進程
<: 高優先級進程
s: session leader,會話(子進程)發起者
ps
? ni: nice值
? pri: priority 優先級
? psr: processor CPU編號
? rtprio: 實時優先級
? 示例:
ps axo pid,cmd,psr,ni,pri,rtprio
? 常用組合:
aux
-ef
-eFH
-eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
system 優先級0-99,100-139
realtime ? ? 99-0
nice ? ? ? ? ? ? ? 負20-19
top ? ? ? ? RT-RT 0-39
[root@CENTOS7 ~]#ps xo pid,cmd,pri,nice,rtprio
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? pri優先級是反的,就是139-0 ? nice是正常的負20-19代表100-139 ? ? rtprio代表realtime99-0.-表示沒有對應關系
? ?PID CMD ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?PRI ? ? ? ? ? ? ? NI RTPRIO
? ? ?1 /usr/lib/systemd/systemd — ? ? ? ? 19 ? ? ?0 ? ? ? –
? ? ?2 [kthreadd] ? ? ? ? ? ? ? ? ? ? ? ? ?19 ? ? ?0 ? ? ? –
? ? ?3 [ksoftirqd/0] ? ? ? ? ? ? ? ? ? ? ? 19 ? ? ?0 ? ? ? –
? ? ?5 [kworker/0:0H] ? ? ? ? ? ? ? ? ? ? ?39 ?-20 ? ? ? –
? ? ?6 [kworker/u256:0] ? ? ? ? ? ? ? ? ? ?19 ? ? ?0 ? ? ? –
? ? ?7 [migration/0] ? ? ? ? ? ? ? ? ? ? ? 139 ? ? ?– ? ? 99
程序跑起來以后調整優先級 :
renice -n -10(負10)6
[root@CENTOS7 ~]#ps xo pid,cmd,pri,nice,rtprio
14795 passwd ? ? ? ? ? ? ? ? ? ? ? 19 ? 0 ? ? ?–
[root@CENTOS7 ~]#renice -n -10 14795
14795 (process ID) old priority 0, new priority -10
[root@CENTOS7 ~]#ps xo pid,cmd,pri,nice,rtprio
14795 passwd ? ? ? ? ? ? ? ? ? ? ? 29 -10 ? ? ?–
直接指定優先級:
nice -n -10 sleep 100 也可以寫成 nice –10 sleep100. ? nice -10 sleep是指定優先級為10
[root@CENTOS7 ~]#nice -n -10 sleep 100 ? ?直接指定sleep以nice-10的優先級運行
[root@CENTOS7 ~]#ps xo pid,cmd,pri,nice,rtprio
? ?PID CMD ? ? ? ? ? ? ? ? ? ? ? ? PRI ?NI RTPRIO
?15387 sleep 100 ? ? ? ? ? ? ? ? ? ?29 -10 ? ? ?–
psr 使用哪個cpu的意思,應用程序運行時,默認使用的cpu不是固定的,而是在幾顆cpu來回切換。這樣
來回切換并不好,會浪費cpu內存中存儲的信息使效率下降。
[root@CENTOS7 ~]#watch -n 1 ‘ps -xo pid,cmd,psr’ ? ? ?每秒顯示一次這個命令
ps示例
? 查詢你擁有的所有進程:
ps -x
? 顯示指定用戶名(RUID)或用戶ID的進程:
ps -fU apache
ps -fu 48
? 顯示指定用戶名(EUID)或用戶ID的進程:
ps -fu wang
ps -fu 1000
? 查看以root用戶權限(實際和有效ID)運行的每個進程:
ps -U root -u root
? 列出某個組擁有的所有進程(實際組ID:RGID或名稱):
ps -fG nginx
ps示例
? 列出有效組名稱(或會話)所擁有的所有進程:
ps -fg mysql
ps -fG 27
? 通過進程ID來顯示所屬的進程:
ps -fp 1234
? 以父進程ID來顯示其下所有的進程,如顯示父進程為1154的所有進程:
ps -f –ppid 1234
? 顯示指定PID的多個進程:
ps -fp 1204,1239,1263
? 要按tty顯示所屬進程:
ps -ft pst/0
[root@CENTOS7 ~]#ps -C bash ? ? ? -C cmd 顯示該cmd的信息
? ?PID TTY ? ? ? ? ?TIME CMD
? 6138 pts/0 ? ?00:00:00 bash
? 6448 tty2 ? ? 00:00:00 bash
?13786 pts/0 ? ?00:00:00 bash
?13884 tty1 ? ? 00:00:00 bash
?14593 pts/1 ? ?00:00:00 bash
?15346 pts/1 ? ?00:00:00 bash
編寫2個腳本
[root@CENTOS7 ~]#vim f1.sh
#!/bin/bash
echo hello
sleep 100
如果不加#!/bin/bash
ps -C f1.sh查詢不到
如果運行時用
bash f1.sh
ps -C f1.sh 也查詢不到
可以一次查詢多個程序
ps -Cf1.sh -C f2.sh
ps -Cf1.sh -C f2.sh o pid,%cpu,%mem,psr ? ? ?查看自己寫的腳本的運行情況
ps示例
?以進程樹顯示系統中的進程如何相互鏈接:
ps -e –forest
?以進程樹顯示指定的進程
ps -f –forest -C sshd
ps -ef –forest | grep -v grep | grep sshd
?要顯示一個進程的所有線程,將顯示LWP(輕量級進程)以及NLWP(輕量級進
程數)列:
ps -fL -C nginx
?要列出所有格式說明符:
ps L
?查看進程的PID,PPID,用戶名和命令:
ps -eo pid,ppid,user,cmd
ps示例
?自定義格式顯示文件系統組,ni值開始時間和進程的時間:
ps -p 1234 -o pid,ppid,fgroup,ni,lstart,etime
?使用其PID查找進程名稱:
ps -p 1244 -o comm=
?要以其名稱選擇特定進程,顯示其所有子進程
ps -C sshd,bash
?查找指定進程名所有的所屬PID,在編寫需要從std輸出或文件讀取PID的腳本時
這個參數很有用:
ps -C httpd,sshd -o pid=
?檢查一個進程的執行時間
ps -eo comm,etime,user | grep nginx
[root@CENTOS7 ~]#ps -C f1.sh -C ping o pid,cmd,%cpu,%mem
? ?PID CMD ? ? ? ? ? ? ? ? ? ? ? ? %CPU %MEM
?16117 /bin/bash ./f1.sh ? ? ? ? ? ?0.0 ?0.1
?16118 ping -f 172.20.0.1 ? ? ? ? ? 2.5 ?0.1
[root@CENTOS7 ~]#ps -p 16118
? ?PID TTY ? ? ? ? ?TIME CMD
?16118 pts/1 ? ?00:00:05 ping
[root@CENTOS7 ~]#ps -p 16118 -o comm
COMMAND
ping
[root@CENTOS7 ~]#ps -C f1.sh -C ping o pid,cmd,%cpu,%mem
? ?PID CMD ? ? ? ? ? ? ? ? ? ? ? ? %CPU %MEM
?16181 /bin/bash ./f1.sh ? ? ? ? ? ?0.0 ?0.1
?16182 ping -f 192.168.30.101 ? ? ?98.5 ?0.1
[root@CENTOS7 ~]#ps -C bash -o pid=
? 1886
? 1957
[root@CENTOS7 ~]#ps -C gnome-shell -o %cpu=
?1.4
[root@CENTOS7 ~]#ps -eo time,etime,pid,psr,%mem,%cpu,cmd | grep “httpd”
00:00:00 ? ? ? 02:39 ? 2127 ? 1 ?0.4 ?0.2 /usr/sbin/httpd -DFOREGROUND
00:00:00 ? ? ? 02:31 ? 2129 ? 2 ?0.2 ?0.0 /usr/sbin/httpd -DFOREGROUND
00:00:00 ? ? ? 02:31 ? 2130 ? 3 ?0.2 ?0.0 /usr/sbin/httpd -DFOREGROUND
00:00:00 ? ? ? 02:31 ? 2131 ? 0 ?0.2 ?0.0 /usr/sbin/httpd -DFOREGROUND
00:00:00 ? ? ? 02:31 ? 2132 ? 2 ?0.2 ?0.0 /usr/sbin/httpd -DFOREGROUND
00:00:00 ? ? ? 02:31 ? 2133 ? 2 ?0.2 ?0.0 /usr/sbin/httpd -DFOREGROUND
00:00:00 ? ? ? 00:00 ? 2224 ? 3 ?0.0 ?0.0 grep –color=auto httpd
[root@CENTOS7 ~]#ps xo pid,%cpu,%mem,cmd k -%mem ? ? 排序k也可以寫成–sort=
? ?PID %CPU %MEM CMD
? 1423 ?0.7 15.1 /usr/bin/gnome-shell
? 1615 ?0.0 ?5.9 /usr/libexec/evolution-calendar-factory
? 1802 ?0.0 ?5.5 /usr/libexec/evolution-calendar-factory-subprocess –factory contacts –bus-name org.gnome.evolution.da
? 1815 ?0.0 ?5.5 /usr/libexec/evolution-calendar-factory-subprocess –factory local –bus-name org.gnome.evolution.datas
? 1617 ?0.2 ?4.3 /usr/bin/gnome-software –gapplication-service
ps示例
? 查找占用最多內存和CPU的進程:
ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%mem | head
ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%cpu | head
? 顯示安全信息:
ps -eM
ps –context
? 使用以下命令以用戶定義的格式顯示安全信息。
ps -eo euser,ruser,suser,fuser,f,comm,label
? 使用watch實用程序執行重復的輸出以實現對就程進行實時的監視,如下面的命
令顯示每秒鐘的監視:
watch -n 1 ‘ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%mem | head’
進程優先級
? 進程優先級調整:
靜態優先級:100-139
進程默認啟動時的nice值為0,優先級為120
只有根用戶才能降低nice值(提高優先性)
? nice命令:
nice [OPTION] [COMMAND [ARG]…]
? renice命令:
renice [-n] priority pid…
? 查看:
ps axo pid,comm,ni
搜索進程
? 最靈活:ps 選項 | 其它命令
? 按預定義的模式:pgrep
pgrep [options] pattern
-u uid: effective user,生效者
-U uid: real user,真正發起運行命令者
-t terminal: 與指定終端相關的進程
-l: 顯示進程名
-a: 顯示完整格式的進程名
-P pid: 顯示指定進程的子進程
? 按確切的程序名稱:/sbin/pidof
pidof bash
[root@CENTOS7 ~]#pgrep -a “httpd” ? 支持正在表達式
2127 /usr/sbin/httpd -DFOREGROUND
2129 /usr/sbin/httpd -DFOREGROUND
2130 /usr/sbin/httpd -DFOREGROUND
2131 /usr/sbin/httpd -DFOREGROUND
2132 /usr/sbin/httpd -DFOREGROUND
2133 /usr/sbin/httpd -DFOREGROUND
[root@CENTOS7 ~]#pgrep -at pts/1
2049 -bash
2134 su –
2138 -bash
[root@CENTOS7 ~]#pgrep -a “^ht*”
2127 /usr/sbin/httpd -DFOREGROUND
2129 /usr/sbin/httpd -DFOREGROUND
2130 /usr/sbin/httpd -DFOREGROUND
2131 /usr/sbin/httpd -DFOREGROUND
2132 /usr/sbin/httpd -DFOREGROUND
2133 /usr/sbin/httpd -DFOREGROUND
[root@CENTOS7 ~]#pidof bash ? ? ? ? ? ?查看一個進程的進程編號
2138 2049 1957 1886 732
[root@CENTOS7 ~]#pidof httpd
2133 2132 2131 2130 2129 2127
系統工具
? uptime
顯示當前時間,系統已啟動的時間、當前上線人數,系統平均負載(1、5、10分
鐘的平均負載,一般不會超過1)
? 系統平均負載:
指在特定時間間隔內運行隊列中的平均進程數
? 通常每個CPU內核的當前活動進程數不大于3,那么系統的性能良好。如果每
個CPU內核的任務數大于5,那么此主機的性能有嚴重問題
? 如果linux主機是1個雙核CPU,當Load Average 為6的時候說明機器已經被
充分使用
[root@CENTOS7 ~]#uptime
當前時間 ? ? 啟動了多久 ? ?當前有幾個用戶 ? ? ? ? 平均負載情況1分鐘 5分鐘 ?10分鐘內cpu沒有完成的任務的個數
?09:28:49 ? ? up 28 min, ? ? ? ?3 users, ? ? ? ?load average: 0.00, ?0.01, ? 0.10
進程管理工具
? ?top:有許多內置命令:
排序:
P:以占據的CPU百分比,%CPU
M:占據內存百分比,%MEM
T:累積占據CPU時長,TIME+
首部信息顯示:
uptime信息:l命令
tasks及cpu信息:t命令
cpu分別顯示:1 (數字)
memory信息:m命令
退出命令:q
修改刷新時間間隔:s
終止指定進程:k
保存文件:W
top命令
? ?欄位信息簡介
us:用戶空間
sy:內核空間
ni:調整nice時間
id:空閑
wa:等待IO時間
hi:硬中斷
si:軟中斷(模式切換)
st:虛擬機偷走的時間
進程管理工具
? ? 選項:
-d #: 指定刷新時間間隔,默認為3秒
-b: 全部顯示所有進程
-n #: 刷新多少次后退出
htop命令:EPEL源
選項:
-d #: 指定延遲時間;
-u UserName: 僅顯示指定用戶的進程
-s COLUME: 以指定字段進行排序
子命令:
s: 跟蹤選定進程的系統調用
l: 顯示選定進程打開的文件列表
a:將選定的進程綁定至某指定CPU核心
t: 顯示進程樹
[root@CENTOS7 ~]#top
top – 09:44:18 up 44 min, ?3 users, ?load average: 0.00, 0.01, 0.05
Tasks: 210 total, ? 1 running, 209 sleeping, ? 0 stopped, ? 0 zombie
%Cpu(s): ?0.0 us, ?0.1 sy, ?0.0 ni, 99.8 id, ?0.0 wa, ?0.0 hi, ?0.0 si, ?0.0 st
KiB Mem : ?1100072 total, ? ?88032 free, ? 653152 used, ? 358888 buff/cache
KiB Swap: ?2097148 total, ?2097128 free, ? ? ? 20 used. ? 238040 avail Mem
[root@CENTOS7 ~]#top -n 5 -b -d 5 -u wang
[root@CENTOS7 ~]#htop
top – 09:49:57 up 49 min, ?3 users, ?load average: 0.01, 0.02, 0.05
Tasks: 212 total, ? 1 running, 211 sleeping, ? 0 stopped, ? 0 zombie
%Cpu(s): ?1.4 us, ?4.1 sy, ?0.0 ni, 94.6 id, ?0.0 wa, ?0.0 hi, ?0.0 si, ?0.0 st
KiB Mem : ?1100072 total, ? ?82040 free, ? 652952 used, ? 365080 buff/cache
KiB Swap: ?2097148 total, ?2097048 free, ? ? ?100 used. ? 235600 avail Mem
內存空間
? 內存空間使用狀態:
free [OPTION]
-b 以字節為單位
-m 以MB為單位
-g 以GB為單位
-h 易讀格式
-o 不顯示-/+buffers/cache行
-t 顯示RAM + swap的總和
-s n 刷新間隔為n秒
-c n 刷新n次后即退出
清除緩存
[root@centos6 ~]#find /proc/ -name drop_caches
/proc/sys/vm/drop_caches
[root@centos6 ~]#cat /proc/sys/vm/drop_caches
0
[root@centos6 ~]#echo 1 > /proc/sys/vm/drop_caches
[root@centos6 ~]#free -h -s 2 -c 2
? ? ? ? ? ? ?total ? ? ? used ? ? ? free ? ? shared ? ?buffers ? ? cached
Mem: ? ? ? ? ?1.9G ? ? ? 666M ? ? ? 1.3G ? ? ? 2.4M ? ? ? 115M ? ? ? 175M
-/+ buffers/cache: ? ? ? 375M ? ? ? 1.6G
Swap: ? ? ? ? 2.0G ? ? ? ? 0B ? ? ? 2.0G
? ? ? ? ? ? ?total ? ? ? used ? ? ? free ? ? shared ? ?buffers ? ? cached
Mem: ? ? ? ? ?1.9G ? ? ? 666M ? ? ? 1.3G ? ? ? 2.4M ? ? ? 115M ? ? ? 175M
-/+ buffers/cache: ? ? ? 375M ? ? ? 1.6G
Swap: ? ? ? ? 2.0G ? ? ? ? 0B ? ? ? 2.0G
內存工具
? ?vmstat命令:虛擬內存信息
vmstat [options] [delay [count]]
vmstat 2 5
? ?procs:
r:可運行(正運行或等待運行)進程的個數,和核心數有關
b:處于不可中斷睡眠態的進程個數(被阻塞的隊列的長度)
? ?memory:
swpd: 交換內存的使用總量
free:空閑物理內存總量
buffer:用于buffer的內存總量
cache:用于cache的內存總量
? ?swap:
si:從磁盤交換進內存的數據速率(kb/s)
so:從內存交換至磁盤的數據速率(kb/s)
[root@centos6 ~]#vmstat
procs ———–memory———- —swap– —–io—- –system– —–cpu—–
?r ?b ? swpd ? free ? buff ?cache ? si ? so ? ?bi ? ?bo ? in ? cs us sy id wa st
?1 ?0 ? ? ?0 1354884 118272 179848 ? ?0 ? ?0 ? ?13 ? ? 1 ? 15 ? 14 ?0 ?0 99 ?1 ?0
[root@centos6 ~]#vmstat 1 ? ? ?一秒觀察一次
procs ———–memory———- —swap– —–io—- –system– —–cpu—–
?r ?b ? swpd ? free ? buff ?cache ? si ? so ? ?bi ? ?bo ? in ? cs us sy id wa st
?0 ?0 ? ? ?0 1356124 118272 179848 ? ?0 ? ?0 ? ?13 ? ? 1 ? 14 ? 13 ?0 ?0 99 ?1 ?0
?0 ?0 ? ? ?0 1356092 118272 179848 ? ?0 ? ?0 ? ? 0 ? ? 0 ? 71 ? 48 ?0 ?0 100 ?0 ?0
?0 ?0 ? ? ?0 1356076 118272 179848 ? ?0 ? ?0 ? ? 0 ? ? 0 ? 26 ? 19 ?0 ?0 100 ?0 ?0
[root@centos6 ~]#vmstat 1 3 ? ?一秒執行一次,執行3次退出
procs ———–memory———- —swap– —–io—- –system– —–cpu—–
?r ?b ? swpd ? free ? buff ?cache ? si ? so ? ?bi ? ?bo ? in ? cs us sy id wa st
?0 ?0 ? ? ?0 1356124 118272 179848 ? ?0 ? ?0 ? ?13 ? ? 1 ? 14 ? 13 ?0 ?0 99 ?1 ?0
?0 ?0 ? ? ?0 1356092 118272 179848 ? ?0 ? ?0 ? ? 0 ? ? 0 ? 71 ? 48 ?0 ?0 100 ?0 ?0
?0 ?0 ? ? ?0 1356076 118272 179848 ? ?0 ? ?0 ? ? 0 ? ? 0 ? 26 ? 19 ?0 ?0 100 ?0 ?0
這里io的意思是:這里的產考物是內存
IO
? ? ? ?bi: Blocks received from a block device (blocks/s). ? 出磁盤,讀出磁盤
? ? ? ?bo: Blocks sent to a block device (blocks/s). ? ? ? ? 進磁盤,寫到磁盤
?Swap
? ? ? ?si: Amount of memory swapped in from disk (/s).
? ? ? ?so: Amount of memory swapped to disk (/s).
內存工具
? iostat:統計CPU和設備IO信息
示例:iostat 1 10
? pmap命令:進程對應的內存映射
? pmap [options] pid […]
-x: 顯示詳細格式的信息
示例:pmap 1
? 另外一種實現:
cat /proc/PID/maps
[root@CENTOS7 ~]#iostat
Linux 3.10.0-693.el7.x86_64 (CENTOS7.localdomain) 05/05/2018 _x86_64_ (4 CPU)
avg-cpu: ?%user ? %nice %system %iowait ?%steal ? %idle
? ? ? ? ? ?0.30 ? ?0.00 ? ?0.92 ? ?0.67 ? ?0.00 ? 98.11
Device: ? ? ? ? ? ?tps ? ?kB_read/s ? ?kB_wrtn/s ? ?kB_read ? ?kB_wrtn
sda ? ? ? ? ? ? ? 2.93 ? ? ? 104.48 ? ? ? ?11.45 ? ? 829137 ? ? ?90894
sdb ? ? ? ? ? ? ? 0.03 ? ? ? ? 0.45 ? ? ? ? 0.00 ? ? ? 3536 ? ? ? ? ?0
sdc ? ? ? ? ? ? ? 0.04 ? ? ? ? 0.70 ? ? ? ? 0.00 ? ? ? 5535 ? ? ? ? ?0
scd0 ? ? ? ? ? ? ?0.00 ? ? ? ? 0.13 ? ? ? ? 0.00 ? ? ? 1056 ? ? ? ? ?0
dm-0 ? ? ? ? ? ? ?0.01 ? ? ? ? 0.13 ? ? ? ? 0.00 ? ? ? 1036 ? ? ? ? ?0
dm-1 ? ? ? ? ? ? ?0.01 ? ? ? ? 0.13 ? ? ? ? 0.00 ? ? ? 1036 ? ? ? ? ?0
[root@CENTOS7 ~]#pmap 2138 ? ? ? ? ? ? ? ? ?詳細顯示bash命令中每個調用使用的真正內存是多少
2138: ? -bash ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 如果一個模塊內存一直增大,會導致內存耗盡。這個程序有問題
0000000000400000 ? ?884K r-x– bash
00000000006dc000 ? ? ?4K r—- bash
00000000006dd000 ? ? 36K rw— bash
00000000006e6000 ? ? 24K rw— ? [ anon ]
0000000000c45000 ? 1444K rw— ? [ anon ]
00007f20e6279000 103588K r—- locale-archive
00007f20ec7a2000 ? ? 48K r-x– libnss_files-2.17.so
00007f20ec7ae000 ? 2044K —– libnss_files-2.17.so
00007f20ec9ad000 ? ? ?4K r—- libnss_files-2.17.so
00007f20ec9ae000 ? ? ?4K rw— libnss_files-2.17.so
00007f20ec9af000 ? ? 24K rw— ? [ anon ]
00007f20ec9b5000 ? 1760K r-x– libc-2.17.so
00007f20ecb6d000 ? 2048K —– libc-2.17.so
00007f20ecd6d000 ? ? 16K r—- libc-2.17.so
00007f20ecd71000 ? ? ?8K rw— libc-2.17.so
00007f20ecd73000 ? ? 20K rw— ? [ anon ]
00007f20ecd78000 ? ? ?8K r-x– libdl-2.17.so
00007f20ecd7a000 ? 2048K —– libdl-2.17.so
00007f20ecf7a000 ? ? ?4K r—- libdl-2.17.so
00007f20ecf7b000 ? ? ?4K rw— libdl-2.17.so
00007f20ecf7c000 ? ?148K r-x– libtinfo.so.5.9
00007f20ecfa1000 ? 2048K —– libtinfo.so.5.9
00007f20ed1a1000 ? ? 16K r—- libtinfo.so.5.9
00007f20ed1a5000 ? ? ?4K rw— libtinfo.so.5.9
00007f20ed1a6000 ? ?132K r-x– ld-2.17.so
00007f20ed3b0000 ? ? 12K rw— ? [ anon ]
00007f20ed3bd000 ? ? ?4K rw— ? [ anon ]
00007f20ed3be000 ? ? 28K r–s- gconv-modules.cache
00007f20ed3c5000 ? ? ?8K rw— ? [ anon ]
00007f20ed3c7000 ? ? ?4K r—- ld-2.17.so
00007f20ed3c8000 ? ? ?4K rw— ld-2.17.so
00007f20ed3c9000 ? ? ?4K rw— ? [ anon ]
00007fff5dfec000 ? ?132K rw— ? [ stack ]
00007fff5e0f2000 ? ? ?8K r-x– ? [ anon ]
ffffffffff600000 ? ? ?4K r-x– ? [ anon ]
?total ? ? ? ? ? 116576K
[root@CENTOS7 ~]#pmap -x 2138
2138: ? -bash
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 臟數據:沒有修改完成的數據
Address ? ? ? ? ? Kbytes ? ? RSS ? Dirty Mode ?Mapping
0000000000400000 ? ? 884 ? ? 548 ? ? ? 0 r-x– bash
00000000006dc000 ? ? ? 4 ? ? ? 4 ? ? ? 4 r—- bash
00000000006dd000 ? ? ?36 ? ? ?36 ? ? ?36 rw— bash
[root@CENTOS7 ~]#cat /proc/2138/maps ? ? ? ? ? ? ?產看文件
00400000-004dd000 r-xp 00000000 08:02 99298 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/usr/bin/bash
006dc000-006dd000 r–p 000dc000 08:02 99298 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/usr/bin/bash
006dd000-006e6000 rw-p 000dd000 08:02 99298 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/usr/bin/bash
006e6000-006ec000 rw-p 00000000 00:00 0
00c45000-00dae000 rw-p 00000000 00:00 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[heap]
7f20e6279000-7f20ec7a2000 r–p 00000000 08:02 67524402 ? ? ? ? ? ? ? ? ? /usr/lib/locale/locale-archive
7f20ec7a2000-7f20ec7ae000 r-xp 00000000 08:02 33792348 ? ? ? ? ? ? ? ? ? /usr/lib64/libnss_files-2.17.so
7f20ec7ae000-7f20ec9ad000 —p 0000c000 08:02 33792348 ? ? ? ? ? ? ? ? ? /usr/lib64/libnss_files-2.17.so
7f20ec9ad000-7f20ec9ae000 r–p 0000b000 08:02 33792348 ? ? ? ? ? ? ? ? ? /usr/lib64/libnss_files-2.17.so
7f20ec9ae000-7f20ec9af000 rw-p 0000c000 08:02 33792348 ? ? ? ? ? ? ? ? ? /usr/lib64/libnss_files-2.17.so
7f20ec9af000-7f20ec9b5000 rw-p 00000000 00:00 0
7f20ec9b5000-7f20ecb6d000 r-xp 00000000 08:02 33792330 ? ? ? ? ? ? ? ? ? /usr/lib64/libc-2.17.so
7f20ecb6d000-7f20ecd6d000 —p 001b8000 08:02 33792330 ? ? ? ? ? ? ? ? ? /usr/lib64/libc-2.17.so
7f20ecd6d000-7f20ecd71000 r–p 001b8000 08:02 33792330 ? ? ? ? ? ? ? ? ? /usr/lib64/libc-2.17.so
7f20ecd71000-7f20ecd73000 rw-p 001bc000 08:02 33792330 ? ? ? ? ? ? ? ? ? /usr/lib64/libc-2.17.so
7f20ecd73000-7f20ecd78000 rw-p 00000000 00:00 0
7f20ecd78000-7f20ecd7a000 r-xp 00000000 08:02 33792336 ? ? ? ? ? ? ? ? ? /usr/lib64/libdl-2.17.so
7f20ecd7a000-7f20ecf7a000 —p 00002000 08:02 33792336 ? ? ? ? ? ? ? ? ? /usr/lib64/libdl-2.17.so
7f20ecf7a000-7f20ecf7b000 r–p 00002000 08:02 33792336 ? ? ? ? ? ? ? ? ? /usr/lib64/libdl-2.17.so
7f20ecf7b000-7f20ecf7c000 rw-p 00003000 08:02 33792336 ? ? ? ? ? ? ? ? ? /usr/lib64/libdl-2.17.so
7f20ecf7c000-7f20ecfa1000 r-xp 00000000 08:02 33792448 ? ? ? ? ? ? ? ? ? /usr/lib64/libtinfo.so.5.9
7f20ecfa1000-7f20ed1a1000 —p 00025000 08:02 33792448 ? ? ? ? ? ? ? ? ? /usr/lib64/libtinfo.so.5.9
7f20ed1a1000-7f20ed1a5000 r–p 00025000 08:02 33792448 ? ? ? ? ? ? ? ? ? /usr/lib64/libtinfo.so.5.9
7f20ed1a5000-7f20ed1a6000 rw-p 00029000 08:02 33792448 ? ? ? ? ? ? ? ? ? /usr/lib64/libtinfo.so.5.9
7f20ed1a6000-7f20ed1c7000 r-xp 00000000 08:02 33792323 ? ? ? ? ? ? ? ? ? /usr/lib64/ld-2.17.so
7f20ed3b0000-7f20ed3b3000 rw-p 00000000 00:00 0
7f20ed3bd000-7f20ed3be000 rw-p 00000000 00:00 0
7f20ed3be000-7f20ed3c5000 r–s 00000000 08:02 100902881 ? ? ? ? ? ? ? ? ?/usr/lib64/gconv/gconv-modules.cache
7f20ed3c5000-7f20ed3c7000 rw-p 00000000 00:00 0
7f20ed3c7000-7f20ed3c8000 r–p 00021000 08:02 33792323 ? ? ? ? ? ? ? ? ? /usr/lib64/ld-2.17.so
7f20ed3c8000-7f20ed3c9000 rw-p 00022000 08:02 33792323 ? ? ? ? ? ? ? ? ? /usr/lib64/ld-2.17.so
7f20ed3c9000-7f20ed3ca000 rw-p 00000000 00:00 0
7fff5dfec000-7fff5e00d000 rw-p 00000000 00:00 0 ? ? ? ? ? ? ? ? ? ? ? ? ?[stack]
7fff5e0f2000-7fff5e0f4000 r-xp 00000000 00:00 0 ? ? ? ? ? ? ? ? ? ? ? ? ?[vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 ? ? ? ? ? ? ? ? ?[vsyscall]
系統監控工具: ? ? ?c/s服務模式
? ?glances命令:EPEL源
? ?glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [–password] [-
t refresh] [-f file] [-o output]
? ?內建命令:
a Sort processes automatically l Show/hide logs
c Sort processes by CPU% b Bytes or bits for network I/O
m Sort processes by MEM% w Delete warning logs
p Sort processes by name x Delete warning and critical logs
i Sort processes by I/O rate 1 Global CPU or per-CPU stats
d Show/hide disk I/O stats h Show/hide this help screen
f Show/hide file system stats t View network I/O as combination
n Show/hide network stats u View cumulative network I/O
s Show/hide sensors stats q Quit (Esc and Ctrl-C also work)
y Show/hide hddtemp stats
系統監控工具
? 常用選項:
-b: 以Byte為單位顯示網卡數據速率
-d: 關閉磁盤I/O模塊
-f /path/to/somefile: 設定輸入文件位置
-o {HTML|CSV}:輸出格式
-m: 禁用mount模塊
-n: 禁用網絡模塊
-t #: 延遲時間間隔
-1:每個CPU的相關數據單獨顯示
系統監控工具
? C/S模式下運行glances命令
? 服務器模式:
glances -s -B IPADDR
IPADDR: 指明監聽的本機哪個地址
? 客戶端模式:
glances -c IPADDR
IPADDR:要連入的服務器端地址
glances用法:
[root@centos6 ~]#glances -s -B 192.168.30.102
Glances server is running on 192.168.30.102:61209
[root@CENTOS7 ~]#glances -c 192.168.30.101
Connected to CENTOS7.localdomain (CentOS Linux 7.4.1708 64bit / Linux 3.10.0-693.el7.x86_64) ? ? ? ? ? ? Uptime: 2:34:30
CPU ?[ ? ? ? 1.8%] ? CPU ? ? ? 1.8% ?nice: ? ? 0.0% ? MEM ? ? 75.4% ?active: ? ? 351M ? SWAP ? ? ?0.7% ? LOAD ? ?4-core
MEM ?[|||| ?75.4%] ? user: ? ? 1.1% ?irq: ? ? ?0.0% ? total: ?1.05G ?inactive: ? 361M ? total: ? 2.00G ? 1 min: ? ?0.00
SWAP [ ? ? ? 0.7%] ? system: ? 0.6% ?iowait: ? 0.0% ? used: ? ?810M ?buffers: ? ? 36K ? used: ? ?14.0M ? 5 min: ? ?0.03
? ? ? ? ? ? ? ? ? ? ?idle: ? ?98.3% ?steal: ? ?0.0% ? free: ? ?264M ?cached: ? ? 161M ? free: ? ?1.99G ? 15 min: ? 0.05
NETWORK ? ? Rx/s ? Tx/s ? TASKS 212 (417 thr), 1 run, 211 slp, 0 oth sorted automatically by memory_percent, flat view
eth0 ? ? ? ?144b ? 928b
eth1 ? ? ? ? 5Kb ? ? 0b ? ? CPU% ?MEM% ?VIRT ? RES ? PID USER ? ? ? ?NI S ? ? TIME+ IOR/s IOW/s Command
lo ? ? ? ? ?38Kb ? 38Kb ? ? ?0.0 ?12.0 1.70G ?128M ?1423 root ? ? ? ? 0 S ? 0:14.14 ? ? 0 ? ? 0 /usr/bin/gnome-shell
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.0 ? 4.4 1.05G 47.0M ?1615 root ? ? ? ? 0 S ? 0:00.85 ? ? 0 ? ? 0 /usr/libexec/evolution-c
DISK I/O ? ? R/s ? ?W/s ? ? ?0.0 ? 4.0 1.06G 43.5M ?1815 root ? ? ? ? 0 S ? 0:00.33 ? ? 0 ? ? 0 /usr/libexec/evolution-c
dm-0 ? ? ? ? ? 0 ? ? ?0 ? ? ?0.0 ? 4.0 1.14G 43.4M ?1802 root ? ? ? ? 0 S ? 0:00.30 ? ? 0 ? ? 0 /usr/libexec/evolution-c
dm-1 ? ? ? ? ? 0 ? ? ?0 ? ? ?0.0 ? 3.3 1024M 35.5M ?1617 root ? ? ? ? 0 S ? 0:02.83 ? ? 0 ? ? 0 /usr/bin/gnome-software
sda1 ? ? ? ? ? 0 ? ? ?0 ? ? ?1.2 ? 1.7 ?232M 18.7M ?4471 root ? ? ? ? 0 S ? 0:00.51 ? ? 0 ? ? 0 /usr/bin/python /bin/gla
sda2 ? ? ? ? ? 0 ? ? ?0 ? ? ?0.0 ? 1.6 ?549M 16.8M ?1020 root ? ? ? ? 0 S ? 0:03.55 ? ? 0 ? ? 0 /usr/bin/python -Es /usr
sda3 ? ? ? ? ? 0 ? ? ?0 ? ? ?5.8 ? 1.5 ?221M 15.8M ?4465 root ? ? ? ? 0 R ? 0:02.56 ? ? 0 ? ? 0 /usr/bin/python /bin/gla
sda4 ? ? ? ? ? 0 ? ? ?0 ? ? ?0.0 ? 1.4 ?303M 14.7M ?1132 root ? ? ? ? 0 S ? 0:01.48 ? ? 0 ? ? 0 /usr/bin/X :0 -backgroun
sda5 ? ? ? ? ? 0 ? ? ?0 ? ? ?0.0 ? 1.4 ?111M 14.6M ? 796 root ? ? ? ? 0 S ? 0:00.31 ? ? 0 ? ? 0 /sbin/dhclient -d -q -sf
sda6 ? ? ? ? ? 0 ? ? ?0 ? ? ?0.0 ? 1.3 ?111M 14.3M ? 797 root ? ? ? ? 0 S ? 0:00.19 ? ? 0 ? ? 0 /sbin/dhclient -d -q -sf
sdb1 ? ? ? ? ? 0 ? ? ?0
sdb2 ? ? ? ? ? 0 ? ? ?0 ? Warning or critical alerts (one entry)
系統監控工具
? dstat命令:系統資源統計,代替vmstat,iostat
? dstat [-afv] [options..] [delay [count]]
-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: 顯示延遲最大的進程
[root@CENTOS7 ~]#dstat 1 ? ? ? 每秒刷新一次
You did not select any stats, using -cdngy by default.
—-total-cpu-usage—- -dsk/total- -net/total- —paging– —system–
usr sys idl wai hiq siq| read ?writ| recv ?send| ?in ? out | int ? csw
? 0 ? 1 ?98 ? 1 ? 0 ? 0| 116k ? 13k| ? 0 ? ? 0 | ?38B 2432B| 179 ? 120
? 0 ? 0 100 ? 0 ? 0 ? 0| ? 0 ? ? 0 |1073B ?842B| ? 0 ? ? 0 | 156 ? 135
? 0 ? 0 100 ? 0 ? 0 ? 0| ? 0 ? ? 0 |1038B ?362B| ? 0 ? ? 0 | 126 ? 111
? 0 ? 1 ?99 ? 0 ? 0 ? 0| ? 0 ? ? 0 |1165B ?362B| ? 0 ? ? 0 | 239 ? 171
[root@CENTOS7 ~]#dstat –top-cpu ? ? 查看CUP 使用率最大的程序
-most-expensive-
? cpu process
ping ? ? ? ? 0.1
ping ? ? ? ? ?24
ping ? ? ? ? ?24
ping ? ? ? ? ?25
iotop
? ?iotop命令是一個用來監視磁盤I/O使用狀況的top類工具iotop具有與top相似的UI,其
中包括PID、用戶、I/O、進程等相關信息,可查看每個進程是如何使用IO
? ?iotop輸出
第一行:Read和Write速率總計
第二行:實際的Read和Write速率
第三行:參數如下:
線程ID(按p切換為進程ID)
優先級
用戶
磁盤讀速率
磁盤寫速率
swap交換百分比
IO等待所占的百分比
線程/進程命令
iotop常用參數
? -o, –only只顯示正在產生I/O的進程或線程,除了傳參,可以在運行過程中按o
生效
? -b, –batch非交互模式,一般用來記錄日志
? -n NUM, –iter=NUM設置監測的次數,默認無限。在非交互模式下很有用
? -d SEC, –delay=SEC設置每次監測的間隔,默認1秒,接受非整形數據例如1.1
? -p PID, –pid=PID指定監測的進程/線程
? -u USER, –user=USER指定監測某個用戶產生的I/O
? -P, –processes僅顯示進程,默認iotop顯示所有線程
? -a, –accumulated顯示累積的I/O,而不是帶寬
? -k, –kilobytes使用kB單位,而不是對人友好的單位。在非交互模式下,腳本
編程有用
iotop常用參數和快捷鍵
? -t, –time 加上時間戳,非交互非模式
? -q, –quiet 禁止頭幾行,非交互模式,有三種指定方式
? ?-q 只在第一次監測時顯示列名
? ?-qq 永遠不顯示列名
? ?-qqq 永遠不顯示I/O匯總
? 交互按鍵
left和right方向鍵:改變排序
r:反向排序
o:切換至選項–only
p:切換至–processes選項
a:切換至–accumulated選項
q:退出
i:改變線程的優先級
[root@CENTOS7 ~]#iotop
Total DISK READ : ? ? ? 0.00 B/s | Total DISK WRITE : ? ? ? 0.00 B/s
Actual DISK READ: ? ? ? 0.00 B/s | Actual DISK WRITE: ? ? ? 0.00 B/s
? ?PID ?PRIO ?USER ? ? DISK READ ?DISK WRITE ?SWAPIN ? ? IO> ? ?COMMAND
? 3024 be/4 root ? ? ? ?0.00 B/s ? ?0.00 B/s ?0.00 % ?0.04 % [kworker/3:0]
? 1536 be/4 root ? ? ? ?0.00 B/s ? ?0.00 B/s ?0.00 % ?0.00 % goa-identity-service
進程管理工具
? ?kill命令:
向進程發送控制信號,以實現對進程管理,每個信號對應一個數字,信號名稱以SIG開頭
(可省略),不區分大小寫
顯示當前系統可用信號: kill –l,trap -l
常用信號:man 7 signal
1) SIGHUP: 無須關閉進程而讓其重讀配置文件
2) SIGINT: 中止正在運行的進程;相當于Ctrl+c
3) SIGQUIT:相當于ctrl+\ ? ? ? ?相當于quit
9) SIGKILL: 強制殺死正在運行的進程
15) SIGTERM:終止正在運行的進程
18) SIGCONT:繼續運行
19) SIGSTOP:后臺休眠
指定信號的方法:
(1) 信號的數字標識:1, 2, 9
(2) 信號完整名稱:SIGHUP ?(3) 信號的簡寫名稱:HUP
[root@CENTOS7 ~]#ss -ntl
State ? ? ?Recv-Q Send-Q ? ? ? ? ? ? ? Local Address:Port ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Peer Address:Port
LISTEN ? ? 0 ? ? ?128 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*:111 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*:*
LISTEN ? ? 0 ? ? ?128 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*:22 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *:*
LISTEN ? ? 0 ? ? ?128 ? ? ? ? ? ? ? ? ? ? ?127.0.0.1:631 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*:*
LISTEN ? ? 0 ? ? ?100 ? ? ? ? ? ? ? ? ? ? ?127.0.0.1:25 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *:*
LISTEN ? ? 0 ? ? ?128 ? ? ? ? ? ? ? ? ? ? ? ? ? ? :::111 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? :::*
LISTEN ? ? 0 ? ? ?128 ? ? ? ? ? ? ? ? ? ? ? ? ? ? :::80 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:::*
LISTEN ? ? 0 ? ? ?128 ? ? ? ? ? ? ? ? ? ? ? ? ? ? :::22 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:::*
LISTEN ? ? 0 ? ? ?128 ? ? ? ? ? ? ? ? ? ? ? ? ? ?::1:631 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? :::*
LISTEN ? ? 0 ? ? ?100 ? ? ? ? ? ? ? ? ? ? ? ? ? ?::1:25 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:::*
[root@CENTOS7 ~]#ps aux | grep httpd
root ? ? ? 2127 ?0.0 ?0.2 226240 ?3072 ? ? ? ? ?Ss ? 09:10 ? 0:01 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2129 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2130 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2131 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2132 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2133 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
root ? ? ? 4958 ?0.0 ?0.0 112664 ? 972 pts/0 ? ?S+ ? 11:57 ? 0:00 grep –color=auto httpd
[root@CENTOS7 ~]#vim /etc/httpd/conf/httpd.conf
User daemon
Group apache
[root@CENTOS7 ~]#ps aux | grep httpd
root ? ? ? 2127 ?0.0 ?0.2 226240 ?3072 ? ? ? ? ?Ss ? 09:10 ? 0:02 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2129 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2130 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2131 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2132 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 2133 ?0.0 ?0.2 228324 ?2380 ? ? ? ? ?S ? ?09:10 ? 0:00 /usr/sbin/httpd -DFOREGROUND
root ? ? ? 5529 ?0.0 ?0.0 112664 ? 968 pts/0 ? ?S+ ? 12:39 ? 0:00 grep –color=auto httpd
[root@CENTOS7 ~]#systemctl restart httpd
[root@CENTOS7 ~]#ps aux | grep httpd
root ? ? ? 5556 ?0.9 ?0.4 226240 ?5132 ? ? ? ? ?Ss ? 12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5558 ?0.1 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5559 ?0.0 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5560 ?0.0 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5561 ?0.0 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5562 ?0.0 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
root ? ? ? 5564 ?0.0 ?0.0 112660 ? 972 pts/0 ? ?R+ ? 12:40 ? 0:00 grep –color=auto httpd
[root@CENTOS7 ~]#vim /etc/httpd/conf/httpd.conf
User apache
Group apache
[root@CENTOS7 ~]#ps aux | grep httpd
root ? ? ? 5556 ?0.2 ?0.4 226240 ?5132 ? ? ? ? ?Ss ? 12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5558 ?0.0 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5559 ?0.0 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5560 ?0.0 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5561 ?0.0 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
daemon ? ? 5562 ?0.0 ?0.2 228324 ?3152 ? ? ? ? ?S ? ?12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
root ? ? ? 5586 ?0.0 ?0.0 112660 ? 972 pts/0 ? ?R+ ? 12:42 ? 0:00 grep –color=auto httpd
[root@CENTOS7 ~]#kill -1 5556
[root@CENTOS7 ~]#ps aux | grep httpd
root ? ? ? 5556 ?0.1 ?0.4 226236 ?5100 ? ? ? ? ?Ss ? 12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
root ? ? ? 5589 ?0.0 ?0.0 112660 ? 968 pts/0 ? ?S+ ? 12:42 ? 0:00 grep –color=auto httpd
[root@CENTOS7 ~]#ps aux | grep httpd
root ? ? ? 5556 ?0.1 ?0.4 226240 ?5160 ? ? ? ? ?Ss ? 12:40 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 5591 ?0.0 ?0.2 228324 ?3132 ? ? ? ? ?S ? ?12:43 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 5592 ?0.0 ?0.2 228324 ?3128 ? ? ? ? ?S ? ?12:43 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 5593 ?0.0 ?0.2 228324 ?3148 ? ? ? ? ?S ? ?12:43 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 5594 ?0.0 ?0.2 228324 ?3148 ? ? ? ? ?S ? ?12:43 ? 0:00 /usr/sbin/httpd -DFOREGROUND
apache ? ? 5595 ?0.0 ?0.2 228324 ?3148 ? ? ? ? ?S ? ?12:43 ? 0:00 /usr/sbin/httpd -DFOREGROUND
root ? ? ? 5597 ?0.0 ?0.0 112664 ? 972 pts/0 ? ?S+ ? 12:43 ? 0:00 grep –color=auto httpd
用kill -1 pid 使進程重讀配置文件時,有的進程好用,有的不好用,父進程pid不變,旗下的子進程pid發生改變。
[root@CENTOS7 ~]#pidof ping
5657
[root@CENTOS7 ~]#kill -2 5657 ? ? ? -2 相當于Ctrl + c
[root@CENTOS7 ~]#pidof bc
5735
[root@CENTOS7 ~]#kill -3 5735 ? ? ? -3 相當于quit
[root@CENTOS7 ~]#pidof ping
5760
[root@CENTOS7 ~]#kill -15 5760 ? ? ? -15 相當于正常退出
[root@centos6 ~]#ps aux | grep minget* ? ? ? mingetty是登錄界面進程,是再生進程
root ? ? ? 2932 ?0.0 ?0.0 ? 4068 ? 544 tty2 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty2
root ? ? ? 2934 ?0.0 ?0.0 ? 4068 ? 540 tty3 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty3
root ? ? ? 2936 ?0.0 ?0.0 ? 4068 ? 540 tty4 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty4
root ? ? ? 2938 ?0.0 ?0.0 ? 4068 ? 544 tty5 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty5
root ? ? ? 2940 ?0.0 ?0.0 ? 4068 ? 544 tty6 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty6
root ? ? ? 4416 ?0.0 ?0.0 103336 ? 972 pts/0 ? ?S+ ? 12:43 ? 0:00 grep –color=auto minget*
[root@centos6 ~]#kill -15 2932 ? ? ? 這種進程殺不死,以為它是再生進程
[root@centos6 ~]#ps aux | grep minget*
root ? ? ? 2934 ?0.0 ?0.0 ? 4068 ? 540 tty3 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty3
root ? ? ? 2936 ?0.0 ?0.0 ? 4068 ? 540 tty4 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty4
root ? ? ? 2938 ?0.0 ?0.0 ? 4068 ? 544 tty5 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty5
root ? ? ? 2940 ?0.0 ?0.0 ? 4068 ? 544 tty6 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty6
root ? ? ? 4418 ?1.0 ?0.0 ? 4068 ? 536 tty2 ? ? Ss+ ?12:44 ? 0:00 /sbin/mingetty /dev/tty2
root ? ? ? 4420 ?0.0 ?0.0 103336 ? 972 pts/0 ? ?S+ ? 12:44 ? 0:00 grep –color=auto minget*
[root@centos6 ~]#kill -9 1 ? ? ?雖然殺不死1 進程,但是已經對1進程造成了損壞,這是再生進程就可以殺死。破壞符進程,到時再生進程不可再生
[root@centos6 ~]#kill -15 2932
[root@centos6 ~]#ps aux | grep minget*
root ? ? ? 2934 ?0.0 ?0.0 ? 4068 ? 540 tty3 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty3
root ? ? ? 2936 ?0.0 ?0.0 ? 4068 ? 540 tty4 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty4
root ? ? ? 2938 ?0.0 ?0.0 ? 4068 ? 544 tty5 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty5
root ? ? ? 2940 ?0.0 ?0.0 ? 4068 ? 544 tty6 ? ? Ss+ ?08:42 ? 0:00 /sbin/mingetty /dev/tty6
root ? ? ? 4420 ?0.0 ?0.0 103336 ? 972 pts/0 ? ?S+ ? 12:44 ? 0:00 grep –color=auto minget*
進程管理工具
? 按PID:kill [-SIGNAL] pid …
kill –n SIGNAL pid;kill –s SIGNAL pid
? 按名稱:killall [-SIGNAL] comm…
? 按模式:pkill [options] pattern
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正發起運行命令者
-t terminal: 與指定終端相關的進程
-l: 顯示進程名(pgrep可用)
-a: 顯示完整格式的進程名(pgrep可用)
-P pid: 顯示指定進程的子進程
kill -number pid
killall cmd
pkill
[root@CENTOS7 ~]#pgrep -at pts/1
2049 -bash
2134 su –
2138 -bash
6030 sleep 123
[root@CENTOS7 ~]#pkill -9 -t pts/1 ? ?強制殺掉pts/1上的所有進程
作業管理
? Linux的作業控制
前臺作業:通過終端啟動,且啟動后一直占據終端;
后臺作業:可通過終端啟動,但啟動后即轉入后臺運行(釋放終端)
? 讓作業運行于后臺
(1) 運行中的作業: ?Ctrl+z
(2) 尚未啟動的作業: COMMAND &
? 后臺作業雖然被送往后臺運行,但其依然與終端相關;退出終端,將關閉后臺作業。如果希望
送往后臺后,剝離與終端的關系
nohup COMMAND &>/dev/null &
screen;COMMAND
? 查看當前終端所有作業:jobs
? 作業控制:
fg [[%]JOB_NUM]:把指定的后臺作業調回前臺
bg [[%]JOB_NUM]:讓送往后臺的作業在后臺繼續運行
kill [%JOB_NUM]: 終止指定的作業
ping 172.18.0.1 & ? ?讓ping后臺運行,信息仍在終端上顯示,但是可以執行別的命令。
輸入jobs查看后臺運行的編號,fg +編號 恢復到前臺
一個前天運行的命令ping172.18.0.1想要后臺運行按Ctrl+z。
[root@CENTOS7 ~]#ping 127.0.0.2
PING 127.0.0.2 (127.0.0.2) 56(84) bytes of data.
64 bytes from 127.0.0.2: icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from 127.0.0.2: icmp_seq=2 ttl=64 time=0.080 ms
64 bytes from 127.0.0.2: icmp_seq=3 ttl=64 time=0.077 ms
64 bytes from 127.0.0.2: icmp_seq=4 ttl=64 time=0.080 ms
^Z
[1]+ ?Stopped ? ? ? ? ? ? ? ? ping 127.0.0.2 ? ? ? ?Ctrl+z ? ? 后臺停止運行。
bg 1 ? 開始后臺運行
ping 172.18.0.1 &
pidof ping
7421
kill -19 7421或者 killall -19 ping
jobs ? ? 只在當前終端當前bash下好用
[root@CENTOS7 ~]#jobs
[1]+ ?Stopped ? ? ? ? ? ? ? ? ping 127.0.0.1
后臺繼續運行 bg 1 或者 killall -18 ping
kill %jobsnumber 停止后臺程序
后臺運行的程序任然與終端有關,jobs命令只在程序運行的終端有效,在別的終端無法查看。
后臺執行的命令一但斷網也會停止執行,可以在screen中運行程序ping172.20.0.1這樣即使斷網,在網絡恢復后可以screen -r繼續這個程序
后臺執行的命令一但斷網也會停止執行,也可以用nohup ping172.20.0.1 & 即使斷網也會繼續執行,將執行結果保存在 nohup.out中
斷網后,ping命令的進程樹會自動切換到init(centos6)或者systemd(centos7)的子進程
并行運行
? 同時運行多個進程,提高效率
? 方法1
vi all.sh
f1.sh&
f2.sh&
f3.sh&
? 方法2
(f1.sh&);(f2.sh&);(f3.sh&)
? 方法3
{ f1.sh& f2.sh& f3.sh& }
多任務并行運行:
[root@centos6 ~]#vim morejobs.sh
#!/bin/bash
#
#********************************************************************
#Author: ? ? ? ? ? ? ? ?wangxiaochun
#QQ: ? ? ? ? ? ? ? ? ? ?29308620
#Date: ? ? ? ? ? ? ? ? ?2018-05-05
#FileName: ? ? ? ? ? ? morejobs.sh
#URL: ? ? ? ? ? ? ? ? ? http://www.magedu.com
#Description: ? ? ? ? ?The test script
#Copyright (C): ? ? ? ? 2018 All rights reserved
#******************************************************************
ping 127.1 &
ping 127.2 &
ping 127.3 &
~
(ping 127.1 &) ; (ping 127.2 &) ; (ping 127.3 &)
{ ping 127.1 & ping 127.2 & ping 127.3 & }
任務計劃
? Linux任務計劃、周期性任務執行
? 未來的某時間點執行一次任務
at
batch:系統自行選擇空閑時間去執行此處指定的任務
? 周期性運行某任務
cron
at任務
? ?包:at
? ?at命令:at [option] TIME
? ?常用選項:
-V 顯示版本信息:
-l: 列出指定隊列中等待運行的作業;相當于atq
-d: 刪除指定的作業;相當于atrm
-c: 查看具體作業任務
-f /path/from/somefile:從指定的文件中讀取任務
-m:當任務被完成之后,將給用戶發送郵件,即使沒有標準輸出
? ?注意:作業執行命令的結果中的標準輸出和錯誤以郵件通知給相關用戶
? ?TIME:定義出什么時候進行 at 這項任務的時間
HH:MM [YYYY-mm-dd]
noon, midnight, teatime(4pm)
tomorrow
now+#{minutes,hours,days, OR weeks}
[root@CENTOS7 ~]#systemctl status atd ? ? ? 查看atd服務是否開啟
● atd.service – Job spooling tools
? ?Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
? ?Active: active (running) since Sat 2018-05-05 09:01:10 CST; 6h ago
?Main PID: 1031 (atd)
? ?CGroup: /system.slice/atd.service
? ? ? ? ? ?└─1031 /usr/sbin/atd -f
May 05 09:01:10 CENTOS7.localdomain systemd[1]: Started Job spooling tools.
May 05 09:01:10 CENTOS7.localdomain systemd[1]: Starting Job spooling tools…
[root@centos6 ~]#service atd status
atd (pid ?2893) is running…
[root@centos6 ~]#at -V
at version 3.1.10
[root@CENTOS7 ~]#at -V
at version 3.1.13
[root@CENTOS7 ~]#vim /etc/chrony.conf ? 自動同步時間,但是不能和服務器的時間相差太多事同步。
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 172.20.0.1 iburst
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
ntpdate 172.20.0.1
systemctl start chronyd
systemctl enable chronyd
[root@CENTOS7 ~]#systemctl status chronyd
● chronyd.service – NTP client/server
? ?Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
? ?Active: active (running) since Sat 2018-05-05 15:56:40 CST; 3min 36s ago
? ? ?Docs: man:chronyd(8)
? ? ? ? ? ?man:chrony.conf(5)
? Process: 9271 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
? Process: 9267 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
?Main PID: 9269 (chronyd)
? ?CGroup: /system.slice/chronyd.service
? ? ? ? ? ?└─9269 /usr/sbin/chronyd
May 05 15:56:40 CENTOS7.localdomain systemd[1]: Starting NTP client/server…
May 05 15:56:40 CENTOS7.localdomain chronyd[9269]: chronyd version 3.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +…EBUG)
May 05 15:56:40 CENTOS7.localdomain systemd[1]: Started NTP client/server.
May 05 15:56:57 CENTOS7.localdomain chronyd[9269]: Selected source 172.20.0.1
May 05 15:56:57 CENTOS7.localdomain chronyd[9269]: System clock wrong by 88.078821 seconds, adjustment started
May 05 15:58:25 CENTOS7.localdomain chronyd[9269]: System clock was stepped by 88.078821 seconds
May 05 15:58:26 CENTOS7.localdomain chronyd[9269]: Source 120.25.108.11 replaced with 193.228.143.12
Hint: Some lines were ellipsized, use -l to show in full.
[root@centos6 ~]#ntpdate 172.20.0.1
?5 May 16:04:29 ntpdate[6818]: step time server 172.20.0.1 offset 1207.025516 sec
[root@centos6 ~]#vim /etc/ntp.conf
server 172.20.0.1 iburst
[root@centos6 ~]#service ntpd start
Starting ntpd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [ ?OK ?]
[root@centos6 ~]#chkconfig –list ? ? ? ? ? ? ? ? ?查看系統中開啟的服務
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
abrt-ccpp ? ? ? 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrtd ? ? ? ? ? 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@centos6 ~]#cat /etc/inittab
# ? 0 – halt (Do NOT set initdefault to this)
# ? 1 – Single user mode
# ? 2 – Multiuser, without NFS (The same as 3, if you do not have networking)
# ? 3 – Full multiuser mode
# ? 4 – unused
# ? 5 – X11
# ? 6 – reboot (Do NOT set initdefault to this)
[root@centos6 ~]#chkconfig ntpd on ? ? ? ?開機自動啟動
[root@centos6 ~]#service ntpd status
ntpd (pid ?6854) is running…
at 一次性計劃任務的用法
[root@CENTOS7 d2]#at 17:00
at> rm -rf /data/d1/d2/d3
at> touch f1 /data/d1/d2
at> <EOT>
job 2 at Sat May ?5 17:00:00 2018
[root@CENTOS7 d2]#at -l ? ? ? 查看有沒有計劃任務
2 Sat May ?5 17:00:00 2018 a root
[root@CENTOS7 ~]#at -c 2 ? ? ?查看這個計劃具體內容
#!/bin/sh
# atrun uid=0 gid=0
# mail wang 0
rm -rf /data/d1/d2/d3
touch f1 /data/d1/d2
marcinDELIMITER70628090
[root@CENTOS7 ~]#ls /var/spool/at/a000020183f51c ? ? 這個計劃存放在磁盤上的位置。
/var/spool/at/a000020183f51c
at時間格式
? HH:MM 02:00
在今日的 HH:MM 進行,若該時刻已過,則明天此時執行任務
? HH:MM YYYY-MM-DD 02:00 2016-09-20
規定在某年某月的某一天的特殊時刻進行該項任務
? HH:MM[am|pm] [Month] [Date]
04pm March 17
17:20 tomorrow
? HH:MM[am|pm] + number [minutes|hours|days|weeks]
在某個時間點再加幾個時間后才進行該項任務
now + 5 minutes
02pm + 3 days
[root@CENTOS7 ~]#at now + 15minutes
at> touch ffffffffffffff /data
at> <EOT>
job 3 at Sat May ?5 16:50:00 2018
[root@CENTOS7 ~]#at -l
2 Sat May ?5 17:00:00 2018 a root
3 Sat May ?5 16:50:00 2018 a root
[root@CENTOS7 ~]#at -c 3
touch ffffffffffffff /data
刪除計劃任務
at -d 2
cat > f1
reboot
echo 123456789
at -f f1 17:50 + 1days
at now + 25hours < f1
如果計劃任務中的命令有標準輸出,并不會在終端上顯示,會以郵件的方式發送給用戶。
在腳本中將標準輸出都從定向到/dev/null
如果想確定計劃任務執行沒執行,可以at -m -f f1 17:50 + 1days ?這樣即使計劃中沒有標準輸出也會給
用戶發一個空郵件在告訴用戶計劃已經執行。
[root@CENTOS7 ~]#echo wall lushen will be died | at now + 1minutes
job 4 at Sat May ?5 16:56:00 2018
[root@CENTOS7 ~]#
Broadcast message from root@CENTOS7.localdomain (Sat May ?5 16:56:00 2018):
lushen will be died
at任務
?執行方式:
1)交互式 2)輸入重定向 3)at –f 文件
?依賴與atd服務,需要啟動才能實現at任務
?at隊列存放在/var/spool/at目錄中
?/etc/at.{allow,deny}控制用戶是否能執行at任務
白名單:/etc/at.allow 默認不存在,只有該文件中的用戶才能執行at命令
黑名單:/etc/at.deny 默認存在,拒絕該文件中用戶執行at命令,而沒有在
at.deny 文件中的使用者則可執行
如果兩個文件都不存在,只有 root 可以執行 at 命令
[root@CENTOS7 ~]#cat /etc/at.deny ? ?黑名單
默認下沒有白名單需要手工創建
將用戶加入黑名單中這個用戶就無法創建計劃任務,但是不在黑名單中的用戶不受影響,如果將用戶同時放到白名單和黑名單中,白名單生效
而且除了白名單中的用戶,其他用戶都不可以創建計劃任務。如果黑白名單有沒有只有root能執行計劃任務
在腳本中編寫at任務
#! /bin/bash
at 18:00 << 123
halt
123
周期性任務計劃cron
? 周期性任務計劃:cron
? 相關的程序包:
cronie: 主程序包,提供crond守護進程及相關輔助工具
cronie-anacron:cronie的補充程序,用于監控cronie任務執行狀況,如
cronie中的任務在過去該運行的時間點未能正常運行,則anacron會隨后啟動一次
此任務
crontabs:包含CentOS提供系統維護任務
[root@CENTOS7 ~]#cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .—————- minute (0 – 59)
# | ?.————- hour (0 – 23)
# | ?| ?.———- day of month (1 – 31)
# | ?| ?| ?.——- month (1 – 12) OR jan,feb,mar,apr …
# | ?| ?| ?| ?.—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | ?| ?| ?| ?|
# * ?* ?* ?* ?* user-name ?command to be executed
?0 ?2 ? * ? * ?1-5 ?wang ?cp -p /etc /data/ > /dev/null ? ? 周一到周五每天晚上2天備份文件/etc到/data下
?0 ?2 ?1,10,20 * 0,6 ?wang tar -Jcpf /data/etc.tar.xz /etc/ > /dev/null
這里1,10,20 和 0,6 是或者的意思,如果想完成并且的關系
需要些腳本判斷今天是不是周六周日如果是則打包,如果不是則不打包。
*/10 2 * * * root wall hello ? ? 每10分鐘root發送一次廣播內容是hello
@reboot root rm -rf /data/* ? ? 重啟的時候已root的身份清空/data,只要關機啟動就算一次重啟
計劃任務
?確保crond守護處于運行狀態:
CentOS 7:
systemctl status crond
CentOS 6:
service crond status
?計劃周期性執行的任務提交給crond,到指定時間會自動運行
系統cron任務:系統維護作業
/etc/crontab
用戶cron任務:
crontab命令
?日志:/var/log/cron
計劃任務
? 系統cron任務:/etc/crontab
? 注釋行以 # 開頭
? 詳情參見 man 5 crontab
# Example of job definition:
# .—————- minute (0 – 59)
# | .————- hour (0 – 23)
# | | .———- day of month (1 – 31)
# | | | .——- month (1 – 12) OR jan,feb,mar,apr …
# | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
? 例如:晚上9點10分運行echo命令
10 21 * * * ?centos /bin/echo “Howdy!”
計劃任務
? 時間表示法:
? (1) 特定值
給定時間點有效取值范圍內的值
? (2) *
給定時間點上有效取值范圍內的所有值
表示“每…”
? (3) 離散取值
#,#,#
? (4) 連續取值
#-#
? (5) 在指定時間范圍上,定義步長
/#: #即為步長
時間格式
? @reboot Run once after reboot
? @yearly 0 0 1 1 *
? @annually ?0 0 1 1 *
? @monthly ?0 0 1 * *
? @weekly 0 0 * * 0
? @daily ?0 0 * * *
? @hourly 0 * * * *
? 示例:每3小時echo和wall命令
0 */3 * * * centos /bin/echo “howdy”;/usr/bin/wall “welcome to Magedu!” ?發郵件
[wang@CENTOS7 ~]$crontab -e
?* * * * * wall lu shen is a shabi
~
[wang@CENTOS7 ~]$
Broadcast message from wang@CENTOS7.localdomain (Sat May ?5 19:11:01 2018):
lu shen is a shabi
[wang@CENTOS7 ~]$vim /var/spool/cron/wang
/var/spool/cron/wang” [Permission Denied]
wang用戶無法直接編輯這個文件,但是可以使用命令crontab -e 來編輯這個文件
因為 crontab 命令有 sgid 。
[wang@CENTOS7 ~]$crontab -l -u root ? ?只有root能夠運行
must be privileged(特權) to use -u
計劃任務
? 系統的計劃任務:
/etc/crontab
/etc/cron.d/ 配置文件
/etc/cron.hourly/ 腳本
/etc/cron.daily/ 腳本
/etc/cron.weekly/ ?腳本
/etc/cron.monthly/ ?腳本
用戶計劃任務
? crontab命令定義
每個用戶都有專用的cron任務文件: ?/var/spool/cron/USERNAME
? crontab命令:
crontab [-u user] [-l | -r | -e] [-i]
-l: 列出所有任務
-e: 編輯任務
-r: 移除所有任務
-i:同-r一同使用,以交互式模式移除指定任務
-u user: 僅root可運行,指定用戶管理cron任務
? ?控制用戶執行計劃任務:
/etc/cron.{allow,deny} ? 與at 文件的黑白名單一樣,如果是在加入黑名單之前創建的計劃任務可以繼續執行,但是無法再創建計劃任務。
at和crontab
? 一次性作業使用 at
? 重復性作業使用crontab
Create ? ? ? ? ? ?at ?time ? crontab -e
List ?at -l crontab -l
Details ?at -c jobnum N/A
Remove ?at -d jobnum crontab -r
Edit (編輯修改) ? N/A crontab -e
? 沒有被重定向的輸出會被郵寄給用戶
? 根用戶能夠修改其它用戶的作業
每十分鐘檢查一下磁盤利用率,大于 80 報警。
[root@CENTOS7 ~]#df | sed -r -n ‘s@^/dev/sd.*[ ]+([[:digit:]]{,3})%.*@\1@p’
10
1
16
[root@CENTOS7 ~]#df | grep /dev/sd | sed -r ‘s@.*[ ]+([0-9]{,3})%.*@\1@’ | sort -nr | head -n 1
16
[root@CENTOS7 ~]#df -i | grep /dev/sd | sed -r ‘s@.*[ ]+([0-9]{,3})%.*@\1@’ | sort -nr | head -n 1
1
1
1
耗光節點編號 echo f{1..523959} | xargs -n 100 touch
[root@CENTOS7 ~]#vim diskspace.sh
#!/bin/bash
#
#********************************************************************
#Author: ? ? ? ? ? ? ? ?wangxiaochun
#QQ: ? ? ? ? ? ? ? ? ? ?29308620
#Date: ? ? ? ? ? ? ? ? ?2018-05-05
#FileName: ? ? ? ? ? ? diskspace.sh
#URL: ? ? ? ? ? ? ? ? ? http://www.magedu.com
#Description: ? ? ? ? ?The test script
#Copyright (C): ? ? ? ? 2018 All rights reserved
#********************************************************************
a=`df | grep /dev/sd | sed -r ‘s@.*[ ]+([0-9]{,3})%.*@\1@’ | sort -nr | head -n 1`
b=`df -i | grep /dev/sd | sed -r ‘s@.*[ ]+([0-9]{,3})%.*@\1@’ | sort -nr | head -n 1`
[ “$a” -ge 80 -o “$b” -ge 80 ] &&echo ?“your disk will be full” ||echo ?“your disk is ok”
[root@CENTOS7 ~]#vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .—————- minute (0 – 59)
# | ?.————- hour (0 – 23)
# | ?| ?.———- day of month (1 – 31)
# | ?| ?| ?.——- month (1 – 12) OR jan,feb,mar,apr …
# | ?| ?| ?| ?.—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | ?| ?| ?| ?|
# * ?* ?* ?* ?* user-name ?command to be executed
@reboot root reboot ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一但重啟則無限循環重啟
解決無限重啟辦法:
centos7
vim /sysroot/etc/crontab
@reboot root reboot
boot menu kernel e
linux16 加 rd.break
ctrl+x
mount -o remount,rw /sysroot
vim /sysroot/etc/crontab
centos6
a
加 空格 1 enter
vim /sysroot/etc/crontab
init 5
在一個目錄/data/下放上多個腳本比如
f2.sh
f1.sh
run-paths /data
就會把 /data中的腳本全部運行
anacron系統
? 運行計算機關機時cron不運行的任務,CentOS6以后版本取消anacron服務,由
crond服務管理
? 對筆記本電腦、臺式機、工作站、偶爾要關機的服務器及其它不一直開機的系統
很重要對很有用
? 配置文件:/etc/anacrontab,負責執行/etc/ cron.daily /etc/cron.weekly
/etc/cron.monthly中系統任務。
? 字段1:如果在這些日子里沒有運行這些任務……
? 字段2:在重新引導后等待這么多分鐘后運行它
? 字段3:任務識別器,在日志文件中標識
? 字段4:要執行的任務
? 由/etc/cron.hourly/0anacron執行
? 當執行任務時,更新/var/spool/anacron/cron.daily 文件的時間戳
[root@CENTOS7 ~]#cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days ? delay in minutes ? job-identifier ? command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
周期性任務計劃cron
? 周期性任務計劃:cron
? 相關的程序包:
cronie: 主程序包,提供crond守護進程及相關輔助工具
cronie-anacron:cronie的補充程序,用于監控cronie任務執行狀況,如
cronie中的任務在過去該運行的時間點未能正常運行,則anacron會隨后啟動一次
此任務
crontabs:包含CentOS提供系統維護任務
[root@CENTOS7 ~]#ll /etc/cron.* ? ? ? ? ? ? ? ? ?系統自帶的計劃任務
-rw——-. 1 root root ?0 Aug ?3 ?2017 /etc/cron.deny
/etc/cron.d:
total 12
-rw-r–r–. 1 root root 128 Aug ?3 ?2017 0hourly
-rw-r–r–. 1 root root 108 Jun 13 ?2017 raid-check
-rw——-. 1 root root 235 Aug ?3 ?2017 sysstat
/etc/cron.daily:
total 12
-rwx——. 1 root root 219 Aug ?2 ?2017 logrotate ? ? 生成一個滾動日志目錄
-rwxr-xr-x. 1 root root 618 Mar 18 ?2014 man-db.cron ? ? 生成whatis數據庫
-rwx——. 1 root root 208 Nov ?5 ?2016 mlocate ? ? ? ? 創建locate索引
/etc/cron.hourly:
total 8
-rwxr-xr-x. 1 root root 392 Aug ?3 ?2017 0anacron
-rwxr-xr-x. 1 root root 191 Aug ?4 ?2017 mcelog.cron
/etc/cron.monthly:
total 0
/etc/cron.weekly:
total 0
管理臨時文件
? CentOS6使用/etc/cron.daily/tmpwatch定時清除臨時文件
? CentOS7使用systemd-tmpfiles-setup服務實現
? 配置文件:
? /etc/tmpfiles.d/*.conf
? /run/tmpfiles.d/*.conf
? /usr/lib/tmpfiles/*.conf
? /usr/lib/tmpfiles.d/tmp.conf
? d /tmp 1777 root root 10d
? d /var/tmp 1777 root root 30d
? 命令:
? systemd-tmpfiles –clean|remove|create configfile
[root@centos6 ~]#ll /etc/cron.daily
total 28
-rwx——. 1 root root ?118 Mar 22 ?2017 cups
-rwx——. 1 root root ?180 Jul 10 ?2003 logrotate
-rwx——. 1 root root ?927 Mar 22 ?2017 makewhatis.cron
-rwx——. 1 root root ?189 Jan 26 ?2015 mlocate.cron
-rwxr-xr-x. 1 root root 2126 Jul 19 ?2013 prelink
-rwxr-xr-x. 1 root root ?563 Nov 23 ?2013 readahead.cron
-rwxr-xr-x. 1 root root ?433 Nov ?7 ?2015 tmpwatch ? ? ? 每天清除垃圾臨時文件
[root@centos6 ~]#cat /etc/cron.daily/tmpwatch
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch “$flags” -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X ‘/tmp/hsperfdata_*’ -X ‘/tmp/.hdb*lock’ -X ‘/tmp/.sapstartsrv*.log’ \
-X ‘/tmp/pymp-*’ 10d /tmp ? ? 超過10天刪除
/usr/sbin/tmpwatch “$flags” 30d /var/tmp ? ? 超過30天刪除
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
? ? if [ -d “$d” ]; then
/usr/sbin/tmpwatch “$flags” -f 30d “$d”
? ? fi
done
計劃任務
? 注意:運行結果的標準輸出和錯誤以郵件通知給相關用戶
(1) COMMAND > /dev/null
(2) COMMAND &> /dev/null
? 對于cron任務來講,%有特殊用途;如果在命令中要使用%,則需要轉義,將%
放置于單引號中,則可不用轉義
在計劃任務中放入 touch /data/`date +%f`.log
tail -f /var/spoll/cron 跟中日志文件發現放入中的命令%f不見了因為在計劃任務中%有特殊用途。
所以這樣寫不行,可以將這個命令放入腳本中。在放入計劃任務中執行。
計劃任務
? 思考:
? (1) 如何在秒級別運行任務?
* * * * * for min in 0 1 2; do echo “hi”; sleep 20; done
? (2) 如何實現每7分鐘運行一次任務? ? sleep 7m
? sleep命令:
sleep NUMBER[SUFFIX]…
SUFFIX:
s: 秒, 默認
m: 分
h: 小時
d: 天
usleep ? 微秒 ?1秒=1000000微秒
vim f1.sh
cmd 0
sleep 20
cmd 20
sleep 20
cmd 40
* * * * * f1.sh ? ? ?每20秒執行一次cmd命令
vim f1.sh
cmd
sleep 20
f1.sh ? ? ? ? ? ? ? ?自己調用自己變成死循環
流程控制
? 過程式編程語言:
順序執行
選擇執行
循環執行
條件選擇if語句
? 選擇執行:
? 注意:if語句可嵌套
? 單分支
if 判斷條件;then
條件為真的分支代碼
fi
? 雙分支
if 判斷條件; then
條件為真的分支代碼
else
條件為假的分支代碼
fi
if 語句
? 多分支
if 判斷條件 1 ; then
條件為真的分支代碼
elif 判斷條件 2 ; then
條件為真的分支代碼
elif 判斷條件 3 ; then
條件為真的分支代碼
else
以上條件都為假的分支代碼
fi
? 逐條件進行判斷,第一次遇為“真”條件時,執行其分支,而后結束整個if語句
If示例
? 根據命令的退出狀態來執行命令
if ping -c1 -W2 station1 &> /dev/null; then
echo ‘Station1 is UP’
elif grep “station1” ~/maintenance.txt &> /dev/null
then
echo ‘Station1 is undergoing maintenance‘
else echo ‘Station1 is unexpectedly DOWN!’ exit 1
fi
用if語句判斷年齡
[root@CENTOS7 ~]#vim test_age.sh
#!/bin/bash
#
#********************************************************************
#Author: ? ? ? ? ? ? ? ?wangxiaochun
#QQ: ? ? ? ? ? ? ? ? ? ?29308620
#Date: ? ? ? ? ? ? ? ? ?2018-05-06
#FileName: ? ? ? ? ? ? test_age.sh
#URL: ? ? ? ? ? ? ? ? ? http://www.magedu.com
#Description: ? ? ? ? ?The test script
#Copyright (C): ? ? ? ? 2018 All rights reserved
#********************************************************************
read -p “please input your age :” AGE
[[ “$AGE” =~ ^[0-9]+$ ]] || { echo “your input is not a number” ; exit ; }
if [ “$AGE” -lt 18 ] ; then
? ? ? ? echo “good good study,day day up”
elif [ “$AGE” -ge 18 -a “$AGE” -lt 60 ] ; then
? ? ? ? echo “good good work”
elif [ “$AGE” -ge 60 -a “$AGE” -le 150 ] ; then
? ? ? ? echo “have a good time”
else
? ? ? ? echo “you are not from earth”
fi
如果條件(組合)過多就不適合用if
比如判斷yes,no或者
1,2,3 cmd
4,5,6 cmd
7,8,9 cmd
if [ $num -eq 1 -o $num -eq 2 -o $num -eq 3 ] 寫起來條件判斷過長,這時用case。
case $num in
1|2|3)
cmd1
;;
4|5|6)
cmd2;
;;
7|8|9)
cmd3
;;
*)
cmd4
;;
esac
條件判斷:case語句 ? ? ? ?case 適合條件是離散型的
case 變量引用 in ? ? ? ? ? ? ? ? ? ?case 后面的變量必須加$符號
PAT1)
分支1
;;
PAT2)
分支2
;;
*)
默認分支
;;
esac
case支持glob風格的通配符:
*: 任意長度任意字符
?: 任意單個字符
[]:指定范圍內的任意單個字符
a|b: a或b
用case實現yes or no
[root@CENTOS7 ~]#vim test_case.sh
#!/bin/bash
#
#********************************************************************
#Author: ? ? ? ? ? ? ? ?wangxiaochun
#QQ: ? ? ? ? ? ? ? ? ? ?29308620
#Date: ? ? ? ? ? ? ? ? ?2018-05-06
#FileName: ? ? ? ? ? ? test_case.sh
#URL: ? ? ? ? ? ? ? ? ? http://www.magedu.com
#Description: ? ? ? ? ?The test script
#Copyright (C): ? ? ? ? 2018 All rights reserved
#********************************************************************
read -p “do you agree:” ans
if [ -z “$ans” ] ; then
? ? ? ? echo “please input yes or no”
? ? ? ? exit
fi
case “$ans” in
[Yy] | [Yy][Ee][Ss])
? ? ? ? echo “your answer is yes”
? ? ? ? ;;
[Nn] | [Nn][Oo])
? ? ? ? echo “your answer is no”
? ? ? ? ;;
*)
? ? ? ? echo “your answer is false”
? ? ? ? ;;
esac

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97606

(0)
王仁兵王仁兵
上一篇 2018-05-06
下一篇 2018-05-06

相關推薦

  • 出來馬哥教育

    18年到馬哥教育學校Linux

    Linux筆記 2018-07-19
  • TCP/IP協議

    無線網絡標準 IEEE 802.3 802.11a/b/g/n/ac 物理層,數據鏈路層data link layer   以太網是工作在物理層和數據鏈路層上 單工,雙工(物理層概念) 單工:單向傳輸數據??? (廣播,收音機) 雙工:雙向傳輸數據 全雙工:同時雙向?????? (手機) 半雙工:輪流雙向???? (對講機)   Hub集…

    Linux筆記 2018-06-24
  • 標準I/O和管道

    input:輸入讀入數據 output:輸出數據文件的 打開的文件都有一個fd: file descriptor (文件描述符) ll /proc/$$/fd #查看fd exec 8<>/data/hosts #指定fd I/O重定向:該變默認位置 > #把標準輸出重定向到文件(一個”>”是覆蓋,”>>”是追加) 2&g…

    2018-04-02
  • Centos7登陸顏色修改

    ? 在用遠程登陸軟件登陸Centos時,登陸提示符是一串黑色的字符,假如登陸的窗口多時很容易造成各種運維事故。本來要在機器A上修改文件配置,結果沒看清在機器B上修改文件配置,造成不必要的麻煩。這時修改登陸字符顏色就顯得很重要,設置一個醒目的提示字符顏色可減少不必要的麻煩,也能夠提醒自己謹慎操作!下面給大家說明下相關配置要求。 ? ? ? ? ? ? ? ? …

    Linux筆記 2018-03-31
  • 第九周總結

    用一個PXE系統既支持centos6又能支持centos7系統安裝,如何實現?

    Linux筆記 2018-05-28
欧美性久久久久