liunx的腳本

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
# 復制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、查看內存腳本

#!/bin/bash
# 設置閾值,當內存占用超過該閾值時發(fā)送警告
threshold=86
while true; do
  # 使用free命令獲取內存占用情況,并使用awk提取第三行的數(shù)據(jù)
  mem_info=$(free | awk ''NR==3{print $3/$2*100}')
  # 比較內存占用情況和j閾值
  if (($(echo "$mem_info > $threshold" | bc -1))); then
  fi
# 設置指定時間并監(jiān)控
sleep 5
done

6、檢測硬盤使用情況

#!/bin/bash
# 設置閾值,當磁盤使用率超過該閾值時發(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)關
# 子網(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 "請輸入結束的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
# 第一步:關閉防護墻
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  # 解除注釋并打開創(chuàng)建目錄的權限
  anon_other_write_enable=YES  # 添加匿名用戶的其他權限
  chroot_local_user=YES        # 打開監(jiān)牢模式
  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
# 安裝后即可遠程傳輸數(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
# 第二步:關閉三個服務,并修改為開機自動關閉
# 關閉防火墻
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
# 第五步:克隆此模板機即可
# 右鍵此虛擬機->管理->克隆
# 克隆后添加靜態(tài)IP的IPADDR、NETMASK、GATEWAY、DNS
# 加重啟網(wǎng)絡 “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)建共享文件并設置屬主權限、rsync用戶(虛擬用戶)
useradd -M -s /sbin/nologin rsync     # 創(chuàng)建用戶
mkdir /backup
chown -R rsync /backup
# 啟動rsync服務
rsync --daemon
# 創(chuàng)建虛擬賬戶的密碼文件并設置權限
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)建虛擬賬戶的密碼文件并設置權限
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:服務器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
# 在服務端創(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
# 預配置
 ./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)控目標服務器腳本

#!/bin/bash
# 目標服務器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)建行為,刪除行為,關閉時發(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 : 目標服務器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配置模板機

# 第一步:關閉防火墻
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     # 建議不要再成熟的系統(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
# 關機
init 0
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 【腳本1】打印形狀 打印等腰三角形、直角三角形、倒直角三角形、菱形 【腳本2】截取字符串 現(xiàn)有一個字符串如下: h...
    學無止境_9b65閱讀 546評論 0 1
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,199評論 2 33
  • 一、簡單介紹Ansible ansible是一個基于Python開發(fā)的自動化運維工具!其功能實現(xiàn)基于SSH遠程連接...
    逗比的一生閱讀 4,135評論 1 4
  • 1、ansible 是什么? ansible是目前最受運維歡迎的自動化運維工具,基于Python開發(fā),集合了眾多運...
    AD鈣dddd閱讀 2,076評論 0 0
  • 本文用于記錄學習和日常中使用過的shell腳本 【腳本1】打印形狀 打印等腰三角形、直角三角形、倒直角三角形、菱形...
    zwb_jianshu閱讀 5,568評論 1 5

友情鏈接更多精彩內容