swap.sh
· 2.1 KiB · Bash
Raw
#!/bin/bash
# ============================
# 创建一个 4GB 的 Swap 文件
# ============================
# 步骤 1:创建 4GB 的 Swap 文件
echo "步骤 1:创建 4GB 的 Swap 文件"
# 使用 fallocate 创建一个 4GB 的 swap 文件
echo "创建 swap 文件..."
sudo fallocate -l 4G /swapfile
# 如果 fallocate 不可用,使用 dd 创建 swap 文件(备选方法)
# echo "使用 dd 创建 swap 文件..."
# sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
# 设置 swap 文件权限为 600,确保只有 root 用户可以访问
echo "设置文件权限为 600..."
sudo chmod 600 /swapfile
# 使用 mkswap 格式化文件为 swap 空间
echo "格式化为 swap 空间..."
sudo mkswap /swapfile
# 启用 swap 文件
echo "启用 swap 文件..."
sudo swapon /swapfile
# ============================
# 配置系统使 Swap 文件在重启后自动启用
# ============================
echo "步骤 2:配置系统使 Swap 文件在重启后自动启用"
# 修改 /etc/fstab 文件,确保重启后 swap 自动启用
echo "修改 /etc/fstab 文件以启用 swap..."
echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
# ============================
# 调整 vm.swappiness 设置
# ============================
echo "步骤 3:调整 vm.swappiness 设置"
# 临时修改 vm.swappiness 参数
echo "临时修改 vm.swappiness 为 60..."
sudo sysctl vm.swappiness=60
# 永久修改 vm.swappiness 设置,编辑 /etc/sysctl.conf
echo "编辑 /etc/sysctl.conf 文件以永久设置 vm.swappiness..."
echo "vm.swappiness=60" | sudo tee -a /etc/sysctl.conf
# 使配置生效
echo "使配置生效..."
sudo sysctl -p
# ============================
# 验证 Swap 文件是否启用
# ============================
echo "步骤 4:验证 Swap 文件是否启用"
# 使用 free 命令查看系统内存和 swap 状态
echo "查看当前内存和 swap 状态..."
free -h
# ============================
# 检查 Swap 状态
# ============================
echo "步骤 5:检查 Swap 状态"
# 使用 swapon --show 查看当前启用的 swap 文件
echo "显示当前启用的 swap 文件..."
swapon --show
echo "脚本执行完毕!"
1 | #!/bin/bash |
2 | |
3 | # ============================ |
4 | # 创建一个 4GB 的 Swap 文件 |
5 | # ============================ |
6 | |
7 | # 步骤 1:创建 4GB 的 Swap 文件 |
8 | echo "步骤 1:创建 4GB 的 Swap 文件" |
9 | |
10 | # 使用 fallocate 创建一个 4GB 的 swap 文件 |
11 | echo "创建 swap 文件..." |
12 | sudo fallocate -l 4G /swapfile |
13 | |
14 | # 如果 fallocate 不可用,使用 dd 创建 swap 文件(备选方法) |
15 | # echo "使用 dd 创建 swap 文件..." |
16 | # sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 |
17 | |
18 | # 设置 swap 文件权限为 600,确保只有 root 用户可以访问 |
19 | echo "设置文件权限为 600..." |
20 | sudo chmod 600 /swapfile |
21 | |
22 | # 使用 mkswap 格式化文件为 swap 空间 |
23 | echo "格式化为 swap 空间..." |
24 | sudo mkswap /swapfile |
25 | |
26 | # 启用 swap 文件 |
27 | echo "启用 swap 文件..." |
28 | sudo swapon /swapfile |
29 | |
30 | # ============================ |
31 | # 配置系统使 Swap 文件在重启后自动启用 |
32 | # ============================ |
33 | |
34 | echo "步骤 2:配置系统使 Swap 文件在重启后自动启用" |
35 | |
36 | # 修改 /etc/fstab 文件,确保重启后 swap 自动启用 |
37 | echo "修改 /etc/fstab 文件以启用 swap..." |
38 | echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab |
39 | |
40 | # ============================ |
41 | # 调整 vm.swappiness 设置 |
42 | # ============================ |
43 | |
44 | echo "步骤 3:调整 vm.swappiness 设置" |
45 | |
46 | # 临时修改 vm.swappiness 参数 |
47 | echo "临时修改 vm.swappiness 为 60..." |
48 | sudo sysctl vm.swappiness=60 |
49 | |
50 | # 永久修改 vm.swappiness 设置,编辑 /etc/sysctl.conf |
51 | echo "编辑 /etc/sysctl.conf 文件以永久设置 vm.swappiness..." |
52 | echo "vm.swappiness=60" | sudo tee -a /etc/sysctl.conf |
53 | |
54 | # 使配置生效 |
55 | echo "使配置生效..." |
56 | sudo sysctl -p |
57 | |
58 | # ============================ |
59 | # 验证 Swap 文件是否启用 |
60 | # ============================ |
61 | |
62 | echo "步骤 4:验证 Swap 文件是否启用" |
63 | |
64 | # 使用 free 命令查看系统内存和 swap 状态 |
65 | echo "查看当前内存和 swap 状态..." |
66 | free -h |
67 | |
68 | # ============================ |
69 | # 检查 Swap 状态 |
70 | # ============================ |
71 | |
72 | echo "步骤 5:检查 Swap 状态" |
73 | |
74 | # 使用 swapon --show 查看当前启用的 swap 文件 |
75 | echo "显示当前启用的 swap 文件..." |
76 | swapon --show |
77 | |
78 | echo "脚本执行完毕!" |
79 |