【汇总:服务器常用脚本整理】(持续更新中)
本文最后更新于 171 天前,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

linux-I-am-root


服务器脚本

BlueSkyXN 综合工具箱

  • 说明:BlueSkyXN 综合工具箱 Linux Supported ONLY,集成了很多脚本。
  • GitHub 地址:https://github.com/BlueSkyXN/SKY-BOX
  • 执行代码:
    wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh

    BlueSkyXN综合工具箱

服务器测速脚本:SuperSpeed 修复版

  • 说明:用来检测服务器到国内三网运营商速度的一键脚本 SuperSpeed 修复版,可以测速你的服务器到国内各大节点的速度。

  • 执行代码:

    bash <(curl -Lso- https://git.io/superspeed_uxh)
  • 备用代码:

    bash <(curl -Lso- https://raw.githubusercontent.com/uxh/superspeed/master/superspeed.sh)

    superspeed命令

查看服务器CPU占用

  • 说明:常用查看命令 top ,如果希望美观,可以先执行下面的代码,然后使用命令 htop
    yum -y install htop && htop

    Top命令

流媒体解锁查看

  • 说明:用于检查 VPS 的 IP 是否可用于各种 OTT 平台
  • 执行代码:
    bash <(curl -L -s raw.githubusercontent.com/lmc999/RegionRestrictionCheck/main/check.sh)

    流媒体解锁查看脚本

三网回程测试

# 第一个
wget https://raw.githubusercontent.com/nanqinlang-script/testrace/master/testrace.sh
bash testrace.sh

# 第二个
wget -qO- git.io/besttrace | bash

# 第三个
curl http://tutu.ovh/bash/returnroute/test.sh | bash

科技lion 一键脚本工具

  • 说明:科技Lion的 Shell 脚本工具是一款全能脚本工具箱,专为 VPS 监控、测试和管理而设计。
  • GitHub 地址:https://github.com/kejilion
  • 官网版一键脚本
    curl -sS -O https://kejilion.pro/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh
  • GitHub 版一键脚本,如果遇到官网版出现大段乱码!可使用该版本。
    curl -sS -O https://raw.githubusercontent.com/kejilion/sh/main/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh

    科技lion一键脚本


VPS 改成 root 登录(适合甲骨文、谷歌云等)

sudo -i
echo root:你的密码 |sudo chpasswd root
sudo sed -i 's/^.*PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^.*PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo reboot

查看系统启动时间

systemd-analyze

一键纯净更新(Debian,Ubuntu 系统)

apt update -y && apt full-upgrade -y && apt autoremove -y && apt autoclean -y

# 脚本解释:
# "update -y" 只是更新软件包索引,但不包含下载
# "full-upgrade -y" 更新系统软件包,并把旧版本删除
# "autoremove -y" 删除未更新的弃用的软件包
# "autoremove -y" 删除所有软件包的缓存

一键纯净更新(CentOS 系统)

yum update -y && yum upgrade -y && yum autoremove -y && yum clean all

一键清理垃圾(Debian,Ubuntu 系统)

# 删除无用的依赖包
sudo apt autoremove --purge

# 删除下载的软件或安装包
sudo apt clean

# 删除跟系统没关系的过期的依赖包
sudo apt autoclean

# 删除残留的配置文件
sudo apt remove --purge $(dpkg -l | awk '/^rc/ {print $2}')

# 删除 journal 日志
sudo journalctl --rotate

# 删除前一秒的 journal 日志
sudo journalctl --vacuum-time=1s

# 删除大小是 50 MB 的 journal 日志
sudo journalctl --vacuum-size=50M

# 删除旧的内核的定向包
sudo apt remove --purge $(dpkg -l | awk '/^ii linux-(image|headers)-[^ ]+/{print $2}' | grep -v $(uname -r | sed 's/-.*//') | xargs)

一键清理垃圾(CentOS 系统)

sudo yum autoremove

sudo yum clean all

sudo journalctl --rotate

sudo journalctl --vacuum-time=1s

sudo journalctl --vacuum-size=50M

sudo yum remove $(rpm -qa kernel | grep -v $(uname -r))

查看服务器系统版本

# Debian
cat /etc/debian_version

# Ubuntu
cat /etc/lsb-release

# CentOS
cat /etc/centos-release

Docker 一键安装

# 更新、安装必备软件
apt-get update && apt-get install -y wget vim

# 国外服务器:
curl -sSL https://get.docker.com/ | sh

# 国内服务器:
curl -sSL https://get.daocloud.io/docker | sh

# 设置开机自动启动
systemctl enable docker

# 查看 Docker 版本
docker -v

Docker 卸载

sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Docker-Compose 一键安装

# 国外服务器:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

# 查看 Docker-Compose 版本
docker-compose --version

# 国内服务器:
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

容器操作

更多信息参考:
https://lvbibir.cn/archives/171

docker run 创建并启动一个新的容器

docker run:创建一个新的容器并运行一个命令

语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

OPTIONS 说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

-d: 后台运行容器,并返回容器ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-P: 随机端口映射,容器内部端口随机映射到主机的高端口

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

只指定容器端口(宿主机端口随机映射)
docker run -p 80 -it ubuntu /bin/bash

主机端口:容器端口
docker run -p 8080:80 -it ubuntu /bin/bash

IP:容器端口
docker run -p 0.0.0.0:80 -it ubuntu /bin/bash

IP:端口:容器端口
dokcer run -p 0.0.0.0:8080:80 -it ubuntu /bin/bash

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

--name="nginx-lb": 为容器指定一个名称;

--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

-h "mars": 指定容器的hostname;

-e username="ritchie": 设置环境变量;

-env-file=[]: 从指定文件读入环境变量;

--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

-m :设置容器使用内存最大值;

--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

--link=[]: 添加链接到另一个容器;

--expose=[]: 开放一个端口或一组端口;

--volume , -v: 绑定一个卷

docker ps 查看容器

docker ps:列出容器

语法:
docker ps [OPTIONS]

OPTIONS 说明:
-a :显示所有的容器,包括未运行的。

-f :根据条件过滤显示的内容。

--format :指定返回值的模板文件。

-l :显示最近创建的容器。

-n :列出最近创建的n个容器。

--no-trunc :不截断输出。

-q :静默模式,只显示容器编号。

-s :显示总的文件大小。

例如:
列出所有创建的容器 ID:docker ps -a -q

docker start/stop/restart 开启、关闭、重启一个容器

docker start:启动一个或多个已经被停止的容器

docker stop:停止一个运行中的容器

docker restart:重启容器

语法
docker start [OPTIONS] CONTAINER [CONTAINER…]
例如:启动已被停止的容器 myrunoob
docker start myrunoob

docker stop [OPTIONS] CONTAINER [CONTAINER…]
例如:停止运行中的容器 myrunoob
docker stop myrunoob

docker restart [OPTIONS] CONTAINER [CONTAINER…]
例如:重启容器 myrunoob
docker restart myrunoob

Docker 扩展阅读


Linux 系统目录结构

Linux-Directory-Structure

以下是对这些目录的解释:

  • /bin
    bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • /boot
    这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev
    dev 是 Device(设备)的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • /etc
    etc 是 Etcetera(等等)的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home
    用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

  • /lib
    lib 是 Library(库)的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media
    Linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

  • /opt
    opt 是 optional(可选)的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE 数据库则就可以放到这个目录下。默认是空的。

  • /proc
    proc 是 Processes(进程)的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的 ping 命令,使别人无法 ping 你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s 就是 Super User 的意思,是 Superuser Binaries(超级用户的二进制文件)的缩写,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
    这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放 selinux 相关的文件的。

  • /srv
    该目录存放一些服务启动之后需要提取的数据。

  • /sys
    这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs
    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
    该文件系统是内核设备树的一个直观反映。
    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    tmp 是 temporary(临时)的缩写这个目录是用来存放一些临时文件的。

  • /usr
    usr 是 unix shared resources(共享资源)的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • /usr/bin
    系统用户使用的应用程序。

  • /usr/sbin
    超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src
    内核源代码默认的放置目录。

  • /var
    var 是 variable(变量)的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run

Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc,上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin,这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是 /bin/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而 /sbin, /usr/sbin 则是给 root 使用的指令。

/var 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

更多代码扩展阅读

  • 代码速查表 Quick Reference:https://wangchujiang.com/reference/
    说明:为开发人员分享快速参考备忘清单【速查表】。这是英文版 Reference 的中文版本。
版权归属: E家之长
本文链接: https://www.5iehome.cc/archives/linux-server-script-summary.html
许可协议: 本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
暂无评论

发送评论 编辑评论


上一篇
下一篇