1、yum脚本
# 解析器
#!/bin/bash
# 判断是否有挂载点
[ -d /media/cdrom ] || mkdir /media/cdrom
# 先取消默认挂载点
umount /dev/sr0 &> /dev/null
# 挂载光盘文件
mount /dev/sr0 /media/cdrom &> /media/cdrom
# 判断是否挂载成功
[ $? -eq 0 ] && echo "挂载成功" || echo “挂载失败”
# 切换到yum包下
cd /etc/yum.repos.d
# 判断是否创建备份文件
[ -d bak ] && echo "已创建" || mkdir bak
# 备份文件
mv CentOS-*.repo bak
# 复制CentOS-Media.repo
cp bak/CentOS-Media.repo .
# 修改CentOS-Media.repo
sed -i "s#gpgchenk=1#gpgchenk=0#" CentOS-Media.repo
sed -i "s#enabled=0#enabled=1#" CentOS-Media.repo
# 清理缓存
yum -y clean all
# 创建缓存
yum makecache
2、检测主机存活脚本
#!/bin/bash
for i in [0..255]
do
ping -c 2 -s 0.005 -w 0.005 192.168.255.$i &> /dev/null
[ $? -eq 0 ] && echo "192.168.255.$i" >> /tmp/ipcunhuo
done
3、批量创建用户脚本
#!/bin/bash
read -p "请输入您要创建几个用户:" NUM
read -p "请输入您创建用户前缀名:" name
for ((i=1;i<=$NUM;i++))
do
useradd $name$i
PASSWD=echo"$RANDOM" | md5sum | cut -c 1-10
echo "$PASSWD" | passwd --stdin $name $i &> /dev/null
echo "$name$i $PASSWD" >> /tmp/zhanghu
done
4、获取CPU使用率
#!/bin/bash
echo $(datre) >> /root/echo_CPU.log
cpu usage=$(top -b -n1 | grep "Cpu(s)" | awk '{print $i + $4}') >> /root/echo_cpu.log
# 输出CPU使用率
echo "CPU使用率: $cpu_usage%" >> /root/echo_cpu.log
# 每隔5秒执行一次
while true; do
sleep 10
# 重新获取cpu使用率并更新使用
echo $(datre) >> /root/echo_CPU.log
cpu usage=$(top -b -n1 | grep "Cpu(s)" | awk '{print $i + $4}') >> /root/echo_cpu.log
echo "CPU使用率:$cpu_usage%" >> /root/echo_cpu.log
done
5、查看内存脚本
#!/bin/bash
# 设置阈值,当内存占用超过该阈值时发送警告
threshold=86
while true; do
# 使用free命令获取内存占用情况,并使用awk提取第三行的数据
mem_info=$(free | awk ''NR==3{print $3/$2*100}')
# 比较内存占用情况和j阈值
if (($(echo "$mem_info > $threshold" | bc -1))); then
fi
# 设置指定时间并监控
sleep 5
done
6、检测硬盘使用情况
#!/bin/bash
# 设置阈值,当磁盘使用率超过该阈值时发送警报
THRESHOLD=90
# 获取磁盘使用率,并提取百分比部分
usage=$(df -h | awk '$NF=="/"{print $5}')
# 检查磁盘使用率是否超过j阈值
if [ $usage -gt $THRESHOLD ]; then
echo "磁盘使用率超过阈值,请及时清理!"
fi
7、DHCP脚本
# 必须是CentOS7下才可使用,还有一些支持包
#!/bin/bash
# 第一步:安装dhcp
yum -y install dhcp &> /dev/null
# 第二部:配置文件生成
cat /usr/share/doc/dhcp-4.2.5/dhcp.conf.example > /etc/dhcp/dhcp.conf
# 第三步:切换路径
cd /etc/dhcp/dhcp.conf
# 第四步:备份配置文件
cp dhcp.conf{,.bak}
# 第五步:获取子网掩码、IP地址、网关
# 子网掩码
NS=`ifconfig | awk -F "[: ]+" 'NR==2{print $5}'`
IPsubnet=`route -n | awk -F "[: ]+" 'NR==2{print $3}'`
Gw=`route -n | awk 'NR==4{prine $1}'`
# MAC地址获取
MAC=`ifconfig | awk -F "[: ]+" 'NR==4{print $3}'`
# IP获取
IPDZ=`ifconfig | awk -F "[ ]+" 'NR==2{print $3}'`
# 第六步:删除配置文件
rm -rf /etc/dhcp/dhcp.conf
# 第七步:请输入启示IP地址
read -p "请输入启示的IP地址:" IPstart
read -p "请输入结束的IP地址:" IPstop
# 第八部:创建配置文件
cat > /etc/dhcp/dhcpd.conf << FOF
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example .org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet $IPsubnet netmask $NS {
range $IPstart $IPstop;
option routers $GW;
};
FOF
systemctl enable dhcpd --now
[ $? -eq 0 ] && echo "dhcp启动成功!" || echo "dhcp启动失败"
8、ftp脚本
#!/bin/bash
# 第一步:关闭防护墙
systemctl stop firewalld
# 第二步:安装ftp
yum -y install vsftpd &> /dev/null
# 第三步:查看是否安装,安装路径及命令路径
rpm -ql vsftpd
# 第四步:切换到ftp的工作路径所在地
cd /var/ftp/
# 第五步:修改pub目录的属主权限为ftp
chown ftp pub
# 第六步:修改ftp文件的配置文件
vi /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES # 解除注释并打开权限YES/NO
anon_umask=022 # 设置umask的权限问题
anon_mkdir_write_enable=YES # 解除注释并打开创建目录的权限
anon_other_write_enable=YES # 添加匿名用户的其他权限
chroot_local_user=YES # 打开监牢模式
allow_writenable_chroot=YES # 指定读写权限
# 第七步:启动ftp
systemctl start vsftpd
# 查看ftp进程是否看起
ps aux | grep ftp
# 查看端口默认为22端口
netstat -antup | grep ftp
# 也可在windows下请求IP进行传输
# 第八步:在其他的Client或者server上下载ftp
yum -y install ftp
# 安装后即可远程传输数据
# 黑名单与白名单
# 添加用户到ftp的黑名单中
vi /etc/vsftpd/userlist
# 添加用户名即可
# 白名单
vi /etc/vsftpd/ftpusers
# 添加用户名即可
9、虚拟机的创建
#!/bin/bash
# 第一步:修改配置文件
# 切换网卡路径
cd /etc/syscofig/network-scripts/
# 删除所以的ipv6和身份id(uuid)
sed -i "s#IPV6.*##" ifcfg-ens32
sed -i "s#UUID.*##" ifcfg-ens32
# 把动态ip修改成静态ip
sed -i "s#BOOTPROTO=dhcp#BOOTPROTO=static#" ifcfg-ens32
# 系统启动时是否激活网卡
sed -i "s#ONBOOT=no#ONBOOT=yes#" ifcfg-ens32
# 第二步:关闭三个服务,并修改为开机自动关闭
# 关闭防火墙
systemctl stop firewalld
# 开机默认关闭
systemctl disable firewalld
# 关闭NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
# 关闭selinux
setenforce 0
# 永久关闭selinux
sed -i "s#SELINUX=enforcing#SELINUX=disabled#" /etc/selinux/config
# 第三步:下载需要的支持包
yum -y install gcc gcc-c++ make automake autoconf lrzsz
yum -y install wget openssh-client* net-tools
# 第四步:关机
init 0
# 第五步:克隆此模板机即可
# 右键此虚拟机->管理->克隆
# 克隆后添加静态IP的IPADDR、NETMASK、GATEWAY、DNS
# 加重启网络 “systemctl restart network”
10、rsync的守护进程
# ①192.168.19.102
# ②192.168.19.101
# 需要两台机器
# 第一台的ftp
systemctl start vsftpd
# 第一台安装rsync远程同步
yum -y install rsync # ①②都安装
# 修改并备份配置文件
cd /etc/
mv rsyncd.conf rsyncd,conf.bak
cat > rsyncd.conf << FOF
fake super = yes
uid = rsync
gid = rsync
use chroot = no
max connections = 200
pid file = /var/run/rsyncd.pid
timeout = 300
lock file = /var/run.rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /backup
ignore errors
read only = false
list = false
hosts allow = 192.168.19.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
FOF
# 创建共享文件并设置属主权限、rsync用户(虚拟用户)
useradd -M -s /sbin/nologin rsync # 创建用户
mkdir /backup
chown -R rsync /backup
# 启动rsync服务
rsync --daemon
# 创建虚拟账户的密码文件并设置权限
echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
# 把rsync加到开机自启中
echo "rsync --daemon" > /etc/rc.d/rc.local
# 第二台
# 安装rsync
yum -y install rsync
# 创建虚拟账户的密码文件并设置权限
echo "123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
# 牵引命令
rsync -avz /root/test rsync_backup@192.168.19.102::backup --password-file=/etc/rsync.password
# -avz :保持稳健各项属性不变,v同步信息,p同步过程
# /root/test:要同步的目录或文件
# rsync_backup:服务器rsync服务的同步的用户
# 192.168.19.102:rsync服务端的IP
# backup:共享文件
# --password:免密操作
# -file:指定密码文件位置
11、ssh
# 192.168.19.100 服务端
# 192.168.19.101 客户端
#!/bin/bash
# 重启sshd
systemctl restart sshd
# 安装telnet
yum -y install telnet
# 在服务端创建私钥与公钥
ssh-keygen:两个回车创建密钥与公钥
# 第三步:将本地的公钥传到客户端
scp -pr /root/.ssh/id_rsa.pub 192.168.19.101:/root/.ssh/authorized_keys
# 另一个公钥传输方法
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.19.101
12、安装
#!bin/bash
# 下载支持包/依赖包
yum install -y pcre-devel openssl-devel
# 下载软件包nginx-1.10.2.tar.gz
wget -q http://nginx.org/download/nginx-1.10.2.tar
# 解压到/usr/src下
tar xf nginx-1.10.2.tar.gz -C /usr/src/
# 切换路径
cd /usr/src/nginx-1.10.2
# 预配置
./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module
# 编译与安装
make
make install
# 创建软连接
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
# 启动nginx
/usr/local/nginx/sbin/nginx
# 重启nginx
/usr/local/nginx/sbin/nginx -s reload
# 停止nginx
/usr/local/nginx/sbin/nginx -s stop
13、inotifywait监控目标服务器脚本
#!/bin/bash
# 目标服务器IP
server=192.168.19.103
# inotifywait 监控命令
# -rmq r:目标目录下递归监控 m:持久化监控路径 q:安静输出
# %w %f %w:输出监控发生的路径 %f:输出监控发生的文件
# create,delete.close_write : 创建行为,删除行为,关闭时发生写行为
# while read line : 循环写line
inotifywait -rmq --format "%w %f" -e create.delete,close_write /root/text | while read line
do
# rsync : 同步命令
# -az a:以归属档方式同步 z: 压缩机制
# rsync_backup : 用户
# server::backup server : 目标服务器ip :: 共享文件
# --password-file: 指定用户密码
# /etc/rsync.password: 密码保存路径
rsync -az $line rsync_backup@server::backup --password-file=/etc/rsync.password
done
14、nginx配置文件
# 创建配置文件,备份掉原有的nginx.conf
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
egrep -v “#|^$” nginx.conf
###nginx.conf配置文件###
# worker进程数
worker_processes 1;
# 时间区块
events {
# 每个worker进程支持的最大连接数
worker_connections 1024;
}
# http区块
http {
# nginx支持,网站的资源文件,include为引用
include mime.types;
default_type application/octet-stream;
# 高效输出
sendfile on;
# 保持连接(保持三次握手的连接)
keepalive_timeout 60;
server {
# 该网站监控的端口
listen 80;
# 网站的名称
server_name localhost;
# uri同一资源标识符(用户访问资源)
location / {
# 用户访问的资源路径
root html;
# 访问的默认路径
index index.html index.htm;
}
}
}
######
15、almalinux配置模板机
# 第一步:关闭防火墙
systemctl status firewalld
systemctl disable firewalld
service firewalld stop
# 第二步:关闭selinux
getenforce
sed -i "s#SELINUX=enforcing#SELINUX=disable#" /etc/selinux/config
# 第三步:升级一下应用,在almalinux中yum为dnf-3的软链接
which yum
ll /usr/bin/yum
dnf updata # 建议不要再成熟的系统下使用,升级的太多,容易崩盘掉系统中已有的项目
# 第四步:修改网卡配置文件
vi /etc/NetworkManager/system-connections/ens160.nmconnection
# 删掉uuid
# 添加ipv6注释
addressl=192.168.19.80,192.168.19.2
dns=192.168.19.2;8.8.8.8
# 关机
init 0