可搜索,可注册,可登录,致敬逗比大佬!尽在救援版逗比根据地 dbgjd.com
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程

【原创】服务器生存指南——SWAP虚拟内存一键配置脚本

News dant03211975 72℃ 0评论

本篇是 小内存服务器生存指南——SWAP虚拟内存 的续篇。上次推出设置虚拟内存的教程后,每次手动设置虚拟内存还是感觉太麻烦,唉~还是太懒了~
可是懒并不是借口。既然懒,那何尝不写个脚本,方便以后设置服务器用呢?话不多说,开始正题


前提条件:
1、服务器系统:CentOS6+/Debian7+/Ubuntu12+
2、虚拟化架构:KVM、VMware

1、以root账户登陆VPS服务器
区分办法:登录后,可见终端显示从$号变成#号

非root账户: [[email protected] ~]$   root账户: [[email protected] ~]#

2、下载并运行程序

CentOS运行命令:

yum -y install wget && wget -O set_swap.sh --no-check-certificate https://soft.mengclaw.com/Bash/set_swap.sh && bash set_swap.sh

Debian运行命令

wget -O set_swap.sh --no-check-certificate https://soft.mengclaw.com/Bash/set_swap.sh && bash set_swap.sh

说明:
1、部分服务器自带一些SWAP交换分区,自行添加后,旧的交换分区将会被删除。
2、OpenVZ虚拟化架构无法自主添加交换分区


过程概览:

-------------------------  设置虚拟内存  版本:1.0  作者:WolfSkylake   -------------------------  1、添加虚拟内存  2、取消虚拟内存  -------------------------  请输入要执行的操作:1   开始检查系统    管理员权限检查通过    虚拟化检查通过    开始设置虚拟内存容量,建议为内存的2倍。但过大的交换分区会影响磁盘IO,请悉知。   请输入需要添加的虚拟内存容量,单位MB: 1024   1024+0 records in 1024+0 records out 1024000000 bytes (1.0 GB) copied, 3.64437 s, 281 MB/s Setting up swapspace version 1, size = 999996 KiB no label, UUID=6de54f86-e5b0-4adb-b517-8008669381ba   虚拟内存设置完成


程序源码:

#!/bin/bash  ############################################################ #  设置虚拟内存 #   #  发布日期:2020-03-05 #  程序版本:1.0 #   #  脚本作者:WolfSkylake #  脚本链接:https://www.mengclaw.com/2020/03/05/627/ ############################################################   # 判断系统版本 check_system_os(){  if [[ -f /etc/redhat-release ]];then   release="CentOS" # -q 执行本条语句的时候不输出,-i 不区分大小写  elif cat /etc/issue | grep -q -i "debian";then   release="Debian"  elif cat /etc/issue | grep -q -i "ubuntu";then   release="Ubuntu"  else   release="Unknown"   echo -e "/n 系统不受支持,安装失败 /n"   exit 1  fi }  # 检查是否是root账户 check_root(){  if [[ $EUID != 0 ]];then   echo -e " 当前非ROOT账号,无法继续操作。/n 请更换ROOT账号登录服务器。 "    exit 1  else   echo -e "/n 管理员权限检查通过 "  fi }  # 安装系统依赖 dependent_install(){  if [[ $release == "CentOS" ]];then   yum -y makecache   yum -y install virt-what  elif [[ $release == "Debian" ]] || [[ $release == "Ubuntu" ]];then   apt-get -y update   apt-get -y install virt-what  else   echo -e " 系统不受支持,退出…… /n"   exit 1  fi }  # 检查虚拟化 virt_check(){  if [[ `virt-what` == "openvz" ]];then   echo -e " 当前虚拟化为OVZ,不支持本脚本 "  elif [[ `virt-what` == "kvm" ]] || [[ `virt-what` == "vmware" ]] ;then   echo -e "/n 虚拟化检查通过 /n"  else   echo -e "/n 不支持当前虚拟化,退出…… /n"   exit 1  fi }  # 取消交换分区 unset_swap(){  if [[ -e /swap/swapfile ]] || [[ -e /swap ]] || [[ `free | grep -i swap | awk -F " " '{print $2}'` -ne 0 ]];then   swapoff -a   rm -rf /swap   sed -i '/swap/d' /etc/fstab   if [[ -e /swap/swapfile ]] || [[ -e /swap ]] || [[ `free | grep -i swap | awk -F " " '{print $2}'` -ne 0 ]];then    echo -e "/n 删除失败,写保护 /n"   else    echo -e "/n 删除完成 /n"   fi  else   echo -e "/n 删除失败,没有找到虚拟内存 /n"  fi }  # 设置交换分区 set_swap(){  echo -e " 开始设置虚拟内存容量,建议为内存的2倍。但过大的交换分区会影响磁盘IO,请悉知。 "  read -p " 请输入需要添加的虚拟内存容量,单位MB: " swap_capacity  if [[ -e /swap/swapfile ]] || [[ -e /swap ]] || [[ `free | grep -i swap | awk -F " " '{print $2}'` -ne 0 ]];then   read -e -p " 交换分区文件已存在,继续创建会删除以前的交换分区,是否继续创建? [Y/n] :" yn   [[ -z "${yn}" ]] && yn="y"   if [[ $yn == [Yy] ]]; then    unset_swap    mkdir /swap    dd if=/dev/zero of=/swap/swapfile bs=1MB count=$swap_capacity    mkswap /swap/swapfile    chmod 600 /swap/swapfile    swapon /swap/swapfile    sed -i '/swap/d' /etc/fstab    echo "/swap/swapfile swap swap defaults 0 0" >>/etc/fstab    if [[ -e /swap/swapfile ]] || [[ -e /swap ]] || [[ `free | grep -i swap | awk -F " " '{print $2}'` -ne 0 ]];then     echo -e "/n 新的虚拟内存设置完成 /n"    else     echo -e "/n 设置失败,启动删除程序 /n"     unset_swap    fi   else    echo -e "/n 用户取消,程序退出 /n"    exit 1   fi  else   echo " " # 为了美观输出一个空行    mkdir /swap   dd if=/dev/zero  of=/swap/swapfile bs=1MB count=$swap_capacity   mkswap /swap/swapfile   chmod 600 /swap/swapfile   swapon /swap/swapfile   sed -i '/swap/d' /etc/fstab   echo "/swap/swapfile swap swap defaults 0 0" >>/etc/fstab   if [[ -e /swap/swapfile ]] || [[ -e /swap ]] || [[ `free | grep -i swap | awk -F " " '{print $2}'` -ne 0 ]];then    echo -e "/n 虚拟内存设置完成 /n"   else    echo -e "/n 设置失败,启动删除程序 /n"    unset_swap   fi  fi }  # 设置交换分区前的环境检查 before_set_swap(){  echo -e "/n 开始检查系统 "  check_system_os  check_root  dependent_install >/dev/null 2>&1 &  virt_check  set_swap }   ############################################################   echo -e " -------------------------" echo -e " 设置虚拟内存" echo -e " 版本:1.0" echo -e " 作者:WolfSkylake " echo -e " -------------------------" echo -e " 1、添加虚拟内存" echo -e " 2、取消虚拟内存" echo -e " -------------------------"   read -p " 请输入要执行的操作:" num case "$num" in 1)  before_set_swap  ;; 2)  unset_swap  ;;  esac   ############################################################


就像朋友说的一样,因为“懒”,驱动着一群程序员想尽办法把机械化的重复,变成一条一条的代码。

反观人类的历史,懒也是推动人类进步的一种动力,因为懒,所以发明了各种为了“懒”而服务的东西。

但是,这个过程,何尝不是一种乐趣呢?


本教程,脚本均为原创,允许转载。转载请注明出处,谢谢。
本文链接:https://www.mengclaw.com/2020/03/05/627/
版权所有©2020萌爪实验室

转载请注明:逗比根据地 » 【原创】服务器生存指南——SWAP虚拟内存一键配置脚本

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址