云服务器初始化操作
拉取最新包
yum update
安装 EPEL 软件源,包含了大量的额外软件包
yum install -y epel-release
关闭防火墙和selinux
关闭防火墙
[root@localhost ~]$ systemctl stop firewalld
永久关闭防火墙
[root@localhost ~]$ systemctl disable firewalld
[root@localhost ~]$ setenforce 0
禁用selinux
[root@localhost ~]$ sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
检查防火墙 selinux
systemctl status firewalld
yum源
把源修改为阿里云或其他国内的源,会加快源下载速度
#修改base源 为阿里云
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#增加epel源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安装常用工具
这就是我们一次下载多个常用的工具,就像给windows系统安装多个软件一样
yum install -y vim tree wget bash-completion bash-completion-extras lsof lrzsz net-tools sysstat iotop iftophtop unzip nc nmap telnet bc psmisc httpd-tools bind-utils nethogs expect ntpdate
mkdir -p /app/tools /app/code
优化ssh连接速度
sed -i '/^GSSAPIAuthentication/s@^@#@g' /etc/ssh/sshd_config
cat >>/etc/ssh/sshd_config<<EOF
UseDNS no
GSSAPIAuthentication no
EOF
systemctl restart sshd
#检查
egrep '^(GSSAPIAuthentication|UseDNS)' /etc/ssh/sshd_config
时间同步
yum install -y ntp
service ntpd start
命令行颜色
#写入到/etc/profile中即可
echo export PS1="'[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\h\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\$ '">> /etc/profile
source /etc/profile
安装htop和ncdu
yum install -y htop ncdu
vm克隆批量脚本
脚本用法
[root@localhost ~]$ mkdir -p /server/scripts
cat > /server/scripts/change.sh << 'EOF'
#!/bin/bash
#author: 作者
#desc: 修改系统IP地址和主机名
#version: v1.0
# 检查参数数量,如果参数数量不等于2,则输出用法信息并退出
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <new_hostname> <new_ip_last_part>"
exit 1
fi
# 获取当前系统的IP地址的最后一部分
# hostname -I 显示所有IP地址
# awk '{print $1}' 选择第一个IP地址
# sed 's#.*\.##g' 只保留最后一部分
ip=$(hostname -I | awk '{print $1}' | sed 's#.*\.##g')
# 获取新的IP地址的最后一部分(作为参数传递)
ip_new=$2
# 获取新的主机名(作为参数传递)
hostname=$1
# 修改网卡配置文件中的IP地址
# 使用sed命令进行替换,将旧的IP地址替换为新的IP地址
sed -i "s#192.168.10.$ip#192.168.10.$ip_new#g" /etc/sysconfig/network-scripts/ifcfg-ens33
# 重启网络服务,以应用新的IP地址配置
systemctl restart network
# 修改主机名
hostnamectl set-hostname $hostname
# 输出修改结果,确认IP地址和主机名已经被修改
echo "IP地址已修改为:192.168.10.$ip_new"
echo "主机名已修改为:$hostname"
EOF
用法
/server/scripts/change.sh new-hostname 123
拆分命令-数据流向与脚本工作原理
输入参数
脚本接收两个输入参数:
1 新的主机名 ($1)
2 新的 IP 地址的最后一部分 ($2)
步骤 1: 检查参数数量
脚本首先检查传入的参数数量是否等于 2。如果参数数量不正确,脚本会输出用法信息并退出。
步骤 2: 获取当前 IP 地址的最后一部分
使用 hostname -I 获取当前主机的 IP 地址。这个命令返回所有 IP 地址。通过 awk '{print $1}' 选择第一个 IP 地址。然后,使用 sed 's#.*.##g' 提取该 IP 地址的最后一部分。例如,如果 IP 地址是 192.168.10.100,则提取 100。
ip=$(hostname -I | awk '{print $1}' | sed 's#.*\.##g')
步骤 3: 获取新的 IP 地址的最后一部分
从传入的参数中获取新的 IP 地址的最后一部分,并赋值给 ip_new。
ip_new=$2
步骤 4: 获取新的主机名
从传入的参数中获取新的主机名,并赋值给 hostname。
hostname=$1
步骤 5: 修改网卡配置文件中的 IP 地址
使用 sed 命令在 /etc/sysconfig/network-scripts/ifcfg-eth33 文件中替换旧的 IP 地址部分(例如 192.168.10.100)为新的 IP 地址部分(例如 192.168.10.123)。
sed -i "s#192.168.10.$ip#192.168.10.$ip_new#g" /etc/sysconfig/network-scripts/ifcfg-eth33
步骤 6: 重启网络服务
重启网络服务,以应用新的 IP 地址配置。
systemctl restart network
步骤 7: 修改主机名
使用 hostnamectl set-hostname 命令修改主机名。
hostnamectl set-hostname $hostname
步骤 8: 输出修改结果
最后,输出新的 IP 地址和主机名,以确认修改已经生效。
echo "IP地址已修改为:192.168.10.$ip_new"
echo "主机名已修改为:$hostname"
评论区