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 “掛載失敗”
# 切換到y(tǒng)um包下
cd /etc/yum.repos.d
# 判斷是否創(chuàng)建備份文件
[ -d bak ] && echo "已創(chuàng)建" || mkdir bak
# 備份文件
mv CentOS-*.repo bak
# 復(fù)制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
# 創(chuàng)建緩存
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片习、批量創(chuàng)建用戶腳本
#!/bin/bash
read -p "請輸入您要創(chuàng)建幾個用戶:" NUM
read -p "請輸入您創(chuàng)建用戶前綴名:" 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秒執(zhí)行一次
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蹬叭、查看內(nèi)存腳本
#!/bin/bash
# 設(shè)置閾值,當內(nèi)存占用超過該閾值時發(fā)送警告
threshold=86
while true; do
# 使用free命令獲取內(nèi)存占用情況状知,并使用awk提取第三行的數(shù)據(jù)
mem_info=$(free | awk ''NR==3{print $3/$2*100}')
# 比較內(nèi)存占用情況和j閾值
if (($(echo "$mem_info > $threshold" | bc -1))); then
fi
# 設(shè)置指定時間并監(jiān)控
sleep 5
done
6秽五、檢測硬盤使用情況
#!/bin/bash
# 設(shè)置閾值,當磁盤使用率超過該閾值時發(fā)送警報
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}
# 第五步:獲取子網(wǎng)掩碼、IP地址贷揽、網(wǎng)關(guān)
# 子網(wǎng)掩碼
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 "請輸入結(jié)束的IP地址:" IPstop
# 第八部:創(chuàng)建配置文件
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
# 第一步:關(guān)閉防護墻
systemctl stop firewalld
# 第二步:安裝ftp
yum -y install vsftpd &> /dev/null
# 第三步:查看是否安裝禽绪,安裝路徑及命令路徑
rpm -ql vsftpd
# 第四步:切換到ftp的工作路徑所在地
cd /var/ftp/
# 第五步:修改pub目錄的屬主權(quán)限為ftp
chown ftp pub
# 第六步:修改ftp文件的配置文件
vi /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES # 解除注釋并打開權(quán)限YES/NO
anon_umask=022 # 設(shè)置umask的權(quán)限問題
anon_mkdir_write_enable=YES # 解除注釋并打開創(chuàng)建目錄的權(quán)限
anon_other_write_enable=YES # 添加匿名用戶的其他權(quán)限
chroot_local_user=YES # 打開監(jiān)牢模式
allow_writenable_chroot=YES # 指定讀寫權(quán)限
# 第七步:啟動ftp
systemctl start vsftpd
# 查看ftp進程是否看起
ps aux | grep ftp
# 查看端口默認為22端口
netstat -antup | grep ftp
# 也可在windows下請求IP進行傳輸
# 第八步:在其他的Client或者server上下載ftp
yum -y install ftp
# 安裝后即可遠程傳輸數(shù)據(jù)
# 黑名單與白名單
# 添加用戶到ftp的黑名單中
vi /etc/vsftpd/userlist
# 添加用戶名即可
# 白名單
vi /etc/vsftpd/ftpusers
# 添加用戶名即可
9腐晾、虛擬機的創(chuàng)建
#!/bin/bash
# 第一步:修改配置文件
# 切換網(wǎng)卡路徑
cd /etc/syscofig/network-scripts/
# 刪除所以的ipv6和身份id(uuid)
sed -i "s#IPV6.*##" ifcfg-ens32
sed -i "s#UUID.*##" ifcfg-ens32
# 把動態(tài)ip修改成靜態(tài)ip
sed -i "s#BOOTPROTO=dhcp#BOOTPROTO=static#" ifcfg-ens32
# 系統(tǒng)啟動時是否激活網(wǎng)卡
sed -i "s#ONBOOT=no#ONBOOT=yes#" ifcfg-ens32
# 第二步:關(guān)閉三個服務(wù),并修改為開機自動關(guān)閉
# 關(guān)閉防火墻
systemctl stop firewalld
# 開機默認關(guān)閉
systemctl disable firewalld
# 關(guān)閉NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
# 關(guān)閉selinux
setenforce 0
# 永久關(guān)閉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
# 第四步:關(guān)機
init 0
# 第五步:克隆此模板機即可
# 右鍵此虛擬機->管理->克隆
# 克隆后添加靜態(tài)IP的IPADDR丐一、NETMASK藻糖、GATEWAY、DNS
# 加重啟網(wǎng)絡(luò) “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
# 創(chuàng)建共享文件并設(shè)置屬主權(quán)限巨柒、rsync用戶(虛擬用戶)
useradd -M -s /sbin/nologin rsync # 創(chuàng)建用戶
mkdir /backup
chown -R rsync /backup
# 啟動rsync服務(wù)
rsync --daemon
# 創(chuàng)建虛擬賬戶的密碼文件并設(shè)置權(quán)限
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
# 創(chuàng)建虛擬賬戶的密碼文件并設(shè)置權(quán)限
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 :保持穩(wěn)健各項屬性不變,v同步信息柠衍,p同步過程
# /root/test:要同步的目錄或文件
# rsync_backup:服務(wù)器rsync服務(wù)的同步的用戶
# 192.168.19.102:rsync服務(wù)端的IP
# backup:共享文件
# --password:免密操作
# -file:指定密碼文件位置
11洋满、ssh
# 192.168.19.100 服務(wù)端
# 192.168.19.101 客戶端
#!/bin/bash
# 重啟sshd
systemctl restart sshd
# 安裝telnet
yum -y install telnet
# 在服務(wù)端創(chuàng)建私鑰與公鑰
ssh-keygen:兩個回車創(chuàng)建密鑰與公鑰
# 第三步:將本地的公鑰傳到客戶端
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
# 預(yù)配置
./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module
# 編譯與安裝
make
make install
# 創(chuàng)建軟連接
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監(jiān)控目標服務(wù)器腳本
#!/bin/bash
# 目標服務(wù)器IP
server=192.168.19.103
# inotifywait 監(jiān)控命令
# -rmq r:目標目錄下遞歸監(jiān)控 m:持久化監(jiān)控路徑 q:安靜輸出
# %w %f %w:輸出監(jiān)控發(fā)生的路徑 %f:輸出監(jiān)控發(fā)生的文件
# create,delete.close_write : 創(chuàng)建行為,刪除行為,關(guān)閉時發(fā)生寫行為
# while read line : 循環(huán)寫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 : 目標服務(wù)器ip :: 共享文件
# --password-file: 指定用戶密碼
# /etc/rsync.password: 密碼保存路徑
rsync -az $line rsync_backup@server::backup --password-file=/etc/rsync.password
done
14牺勾、nginx配置文件
# 創(chuàng)建配置文件,備份掉原有的nginx.conf
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
egrep -v “#|^$” nginx.conf
###nginx.conf配置文件###
# worker進程數(shù)
worker_processes 1;
# 時間區(qū)塊
events {
# 每個worker進程支持的最大連接數(shù)
worker_connections 1024;
}
# http區(qū)塊
http {
# nginx支持阵漏,網(wǎng)站的資源文件驻民,include為引用
include mime.types;
default_type application/octet-stream;
# 高效輸出
sendfile on;
# 保持連接(保持三次握手的連接)
keepalive_timeout 60;
server {
# 該網(wǎng)站監(jiān)控的端口
listen 80;
# 網(wǎng)站的名稱
server_name localhost;
# uri同一資源標識符(用戶訪問資源)
location / {
# 用戶訪問的資源路徑
root html;
# 訪問的默認路徑
index index.html index.htm;
}
}
}
######
15、almalinux配置模板機
# 第一步:關(guān)閉防火墻
systemctl status firewalld
systemctl disable firewalld
service firewalld stop
# 第二步:關(guān)閉selinux
getenforce
sed -i "s#SELINUX=enforcing#SELINUX=disable#" /etc/selinux/config
# 第三步:升級一下應(yīng)用履怯,在almalinux中yum為dnf-3的軟鏈接
which yum
ll /usr/bin/yum
dnf updata # 建議不要再成熟的系統(tǒng)下使用回还,升級的太多,容易崩盤掉系統(tǒng)中已有的項目
# 第四步:修改網(wǎng)卡配置文件
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
# 關(guān)機
init 0