# 磁盘管理
## 查看磁盘空间的占用
```SHELL
df
-h 显示人类易读的方式
linux下磁盘命名格式
/dev/sd[a-z]
```
## 查看目录的占用空间
```SHELL
du
-s 查看目录
-h 显示人类易读的方式
du -sh /*
```
## dd
```SHELL
dd if=/dev/zero of=file bs=size count=number
if = input file 表示从inputfile里面读取内容
of = output file 表示将读出的数据写入到什么地方
bs = byte size 可以是K,M,G,T
```
## RAID 阵列卡
- raid0
- 读、写速度有所提升
- 可用空间N(磁盘的个数)*每一块的大小
- 没有容错能力
- 最少磁盘数2
- raid1
- 读有所提升,写性能下降
- 可用空间,所有磁盘中最小的一块大小
- 有容错能力
- 最少是2,2N
- raid5
- 读写速度有提升
- 可用空间(N-1)*大小
- 有容错能力,最多可以坏一块硬盘
- 最少要3块
- raid6
- 读写速度有所提升
- 可用空间(N-2)*大小
- 有容错能力,最多可以坏2块
- 最少要4块
- raid10
- 先实现raid1,在实现raid0
- 读写性能有提升
- 可用空间N*大小/2
- 有容错能力,每组镜像可以坏一块
- 最少要4块
- raid01
- 先实现raid0,在实现raid1
- 读写性能有提升
- 可用空间N*大小/2
- 有容错能力,只能坏同一组的
- 最少要4块
# 网络
网络基础知识
ipv4:4段 32位
网络位+主机位
网段:
主机:
A
网络位为8位
主机位为24位
第一位不可以变
0 0000001
0 1111111
1-126
127 有特殊用途,回环地址
可用网段数:2^7 -1
每一个网段有多少可用主机:2^24-2
有两个是不可以用:
主机位全为0,表示一个网段
主机位全为1,表示网段里面的广播地址
私有地址:自己可以用的
子网掩码:255.0.0.0
10 段
共有地址: 都可以访问的地址
1.1.1.1/8
00000001.0.0.0
11111111.0.0.0
1.0.0.0
B
16位网络位
16位为主机位
10 000000 00000000
10 111111 11111111
128
191
可用网段:2^14
每个网段有多少可用主机:2^16-2
私有地址:
172.16-172.31
子网掩码:255.255.0.0
C
前24位为网络位
后8位为主机位
110 00000 000000000 00000000
110 11111 11111111 11111111
192
223
可用网段:2^21
每个网段有多少可用机器:2^8-2
私有地址:
192.168.0 -192.168.255
子网掩码 255.255.255.0
D
作为多播地址
1110 0000
1110 1111
224
239
E
作为科研使用
CIDR(无类域间路由)
网络位向主机位借位
16 +5
21位网络位 11个 2^11 2046
255.255.11111000.0
255.255.248.0
网络位向主机位借位:
24+6 30
2^2 -2
子网掩码
网络位全为1,主机位全为0
ip地址和子网掩码来确定属于那个网段
按位与 :只要有0就是0,全部为1,才是1
```PYTHON
1&0 0
2&3 2
```
按位或:只要有1就是1,全部为0,才是0
```PYTHON
1|0 1
2|3 3
```
异或:相同为0,不同为1
```python
1^0 1
2^3 1
3^5 6
```
取反:-(n+1)
```PYTHON
~2 -3
~-4 3
```
左移:n*2的左移次方
```python
2<<2 8
10<<3 80
```
右移:n/2的右移次方(向下取整,不是四舍五入)
```python
12>>2 3
13>>2 3
50>>2 12
2>>2 0
```
10.20.43.65/10
网段
```SHELL
10.20.43.65
00001010.00010100.
11111111.11000000
10.0.0.0
```
## 网络配置
- 手动
- ip
- 配置文件
- 自动分配
- dhcp
## ip
- 增加ip地址
ip a add 192.168.21.23/24 dev ens33
- 删除 ip
ip a del 192.168.21.23/24 dev ens33
- 增加ip地址并增加别名
ip a add 192.168.21.23/24 dev ens33 label ens33:0
- 删除
ip a del 192.168.21.23/24 dev ens33 label ens33:0
## 网卡配置文件
- 配置文件 /etc/sysconfig/network-scripts/ifcfg-name
```SHELL
TYPE="Ethernet" # 网卡的接口类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp" # 获取ip地址的方式,可以是dhcp,static,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="ens33" # 网卡名称
UUID="c252096f-57e0-41bd-a1d9-5158a86f9ba1" # 设备唯一标识码
DEVICE="ens33"
ONBOOT="yes" #开机是否启动
HWADDR="" #mac地址
IPADDR=ip地址
NTEMASK=子网掩码
GATEWAY=网关
```
## DNS配置文件
- /etc/reslov.conf
```SHELL
nameserver 192.168.21.2
```
## 主机名
- 获取主机名 hostname
- 设置主机名 hostname name
- 配置文件
- /etc/hostname centos7
- /etc/sysconfig/network centos6
- 永久生效
- hostnamectl set-hostname s22
- 修改配置文件
## ss、netstat
ss命令用来打印linux系统中网络的状态信息,可以让管理员更好的了解网络情况
```SHELL
-a 所有
-l 监听中的
-t tcp
-u udp
-x unix socket文件
-p 相关的程序
-n 显示服务的端口号
常用组合 -anlp -tnlp -unlp
* ipv4 0.0.0.0 表示当前主机上的所有ip地址
:: ipv6 所有地址
```
## 解析
- 本地解析 /etc/hosts
- dns解析
- 根节点 总共13组
## wget
用来下载网络资源
```SHELL
-q 静默模式
-c 断点续传
-O filename 另存为的名称
-P 保存到指定的目录
-r 递归下载
-p 下载所有的html文件
```
## systemctl
管理服务 service
start name ... 启动服务
stop name ... 关闭服务
reload name 重读配置文件 平滑重启
restart name 重启服务
status name 查看状态
enable name 开机自启动
disabled name 关闭开机自启动
systemctl list-unit-files |grep sshd 查看服务是否开机自启动
centos6
service 动作 服务
chkconfig 用来管理服务的开机启动
# 计划任务(定时任务)
```SHELL
/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
22 * * * * * root touch b.txt 每天的每小时的第22分钟做什么事
25 15 * * * root touch /tmp/c.txt 每天下午的三点25分
27 15,16,17 * * * root touch /tmp/d.txt 每天的15点,16点,17点的第27分钟
28 15-19 * * * root touch /tmp/e.txt 表示 每天的15点到19点的28分钟
30 10-20/5 * * * root touch /tmp/f.txt 每天的10点到20点每个5小时
*/7 * * * * root touch /tmp/f.txt 从0开始重新结算
37 * 10,20,30 * 4 echo $(date) >> /tmp/g.txt 表示每个月的10,20,30或者每周的周四
建议:
分钟不要写成*
分钟不要写成*
分钟不要写成*
```
## crontab 命令
```SHELL
-e 编辑
-u 指定用户,如果不写,默认为当前用户
-l 列出当前用户的计划任务
-r 删除用户的计划任务
```
- 默认写入的文件在/var/spool/cron/username
## 计划任务作用
- 定时删除
- 定时备份
- 同步时间 ntpdate