1. 使用root用戶清空/var/log/messages日志。要保留這個日志的最后100行。
1. 判斷當前執(zhí)行腳本的用戶是否是root用戶,普通用戶沒有權限執(zhí)行該腳本
2. 判斷該日志文件是否存在
3. 保留這個日志最近的100行內容
#第一種方法
[root@shell /scripts]# cat if-10.sh
#!/bin/bash
#1.判斷當前執(zhí)行腳本的用戶是否是root用戶
if [ "$USER" == "root" -a $UID -eq 0 ];then
? ? #2.判斷/var/log/messages文件是否存在
? ? if [ -f /var/log/messages ];then
? ? ? ? #保留該日志的最近100行內容
? ? ? ? tail -100 /var/log/messages >/var/log/messages.bak &&? mv -f /var/log/messages.bak? /var/log/messages
? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? echo "日志清空成功!最近100行內容也保存成功!"
? ? ? ? else
? ? ? ? ? ? echo "日志清空失??!最近100行內容也保存失??!"
? ? ? ? fi
? ? else
? ? ? ? echo "/var/log/messages 文件不存在!"
? ? ? ? exit
? ? fi
else
? ? echo "當前用戶$USER 不是超級管理員,沒有權限執(zhí)行該腳本。"
fi
[root@shell /scripts]# wc -l /var/log/messages
1113 /var/log/messages
[root@shell /scripts]# mv /var/log/messages /var/log/messages.txt
[root@shell /scripts]# sh if-10.sh
/var/log/messages 文件不存在!
[root@shell /scripts]# mv /var/log/messages.txt /var/log/messages
[root@shell /scripts]#
[root@shell /scripts]# sh if-10.sh
日志清空成功!最近100行內容也保存成功!
[root@shell /scripts]# wc -l /var/log/messages
100 /var/log/messages
#第二種方法,不要使用if里面套if
2. 判斷一個服務是否正常啟動? sshd
1. 怎么判斷一個服務是否正常啟動? 通過運行狀態(tài)判斷
2. 判斷這個服務的端口號是否存在
3. 判斷這個服務的進程是否存在
[root@shell /scripts]# cat if-11.sh
#!/bin/bash
#1.判斷服務是否在運行狀態(tài)
Server_Status=$(systemctl? status? $1 | awk '/Active/{print $2}')
#2.根據(jù)變量值的狀態(tài)進行判斷
if [ "$Server_Status" == "active" ];then
? ? echo "服務$1 在運行中.....狀態(tài)為:${Server_Status}....."
else
? ? echo "服務$1 不在運行中....狀態(tài)為:${Server_Status}....."
fi
#3.判斷服務名稱是否是mariadb
if [ "$1" == "mariadb" ];then
? ? Server=mysqld
else
? ? Server=$1
fi
netstat? -lntp| grep $Server &>/dev/null
if [ $? -eq 0 ];then
? ? echo "服務$1 端口號存在........"
else
? ? echo "服務$1 端口號不存在......"
fi
#5.判斷服務的進程是否存在
ps aux | grep $1 |grep -Ev "grep|pts" &>/dev/null
#6.根據(jù)返回值的結果進行判斷
if [ $? -eq 0 ];then
? ? echo "服務$1 進程存在......."
else
? ? echo "服務$1 進程不存在....."
fi
#第二種
[root@shell /scripts]# cat if-11.sh
#!/bin/bash
#1.判斷服務是否在運行狀態(tài)
Server_Status=$(systemctl? status? $1 | awk '/Active/{print $2}')
#2.根據(jù)變量值的狀態(tài)進行判斷
if [ "$Server_Status" == "active" ];then
? ? echo "服務$1 在運行中.....狀態(tài)為:${Server_Status}....."
else
? ? echo "服務$1 不在運行中....狀態(tài)為:${Server_Status}....."
fi
#3.判斷服務名稱是否是mariadb
if [ "$1" == "mariadb" ];then
? ? netstat? -lntp| grep mysqld &>/dev/null
? ? #4.根據(jù)返回值進行判斷結果
? ? if [ $? -eq 0 ];then
? ? ? ? echo "服務mariadb 端口號存在........"
? ? else
? ? ? ? echo "服務mariadb 端口號不存在......"
? ? fi
else
? ? netstat? -lntp| grep $1 &>/dev/null
? ? if [ $? -eq 0 ];then
? ? ? ? echo "服務$1 端口號存在........"
? ? else
? ? ? ? echo "服務$1 端口號不存在......"
? ? fi
fi
#5.判斷服務的進程是否存在
ps aux | grep $1 |grep -Ev "grep|pts" &>/dev/null
#6.根據(jù)返回值的結果進行判斷
if [ $? -eq 0 ];then
? ? echo "服務$1 進程存在......."
else
? ? echo "服務$1 進程不存在....."
fi
3. 根據(jù)不同的操作系統(tǒng)版本進行安裝yum源
[root@shell /scripts]# cat if-12.sh
#!/bin/bash
#1.定義變量,定義版本
Version=$(awk '{print $(NF-1)}' /etc/redhat-release)
#2.根據(jù)操作系統(tǒng)的版本號進行判斷
if [ ${Version%%.*} -eq 7 ];then
? ? echo "當前操作系統(tǒng)版本為7系列......"
? ? #3.測試當前系統(tǒng)的網(wǎng)絡連通情況
? ? ping -c1 -W1 www.baidu.com &>/dev/null
? ? #4.根據(jù)測試網(wǎng)絡的返回值進行判斷
? ? if [ $? -ne 0 ];then
? ? ? ? echo "當前系統(tǒng)的網(wǎng)絡不可達!不能進行下載更新Yum倉庫!"
? ? ? ? exit
? ? else
? ? ? ? echo "移除舊的Yum倉庫................"
? ? ? ? rm -f /etc/yum.repos.d/* && echo "舊的Yum倉庫移除完畢!" || echo "舊的Yum倉庫移除失敗!"
? ? ? ? echo "開始更新下載Yum倉庫Base源............"
? ? ? ? curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null && echo "Yum倉庫的Base源更新成功!" || echo "Yum倉庫的Base源更新失?。?
? ? ? ? echo "開始更新下載Yum倉庫Epel源............"
? ? ? ? curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo &>/dev/null && echo "Yum倉庫的Epel源更新成功!" || echo "Yum倉庫的Epel源更新失敗!"
? ? ? ? echo "當前操作系統(tǒng)7系列的Yum源更新下載完畢!"
? ? ? ? exit
? ? fi
elif [ ${Version%%.*} -eq 6 ];then
? ? echo "當前操作系統(tǒng)版本為6系列......"
? ? #5.測試當前系統(tǒng)的網(wǎng)絡連通情況
? ? ping -c1 -W1 www.baidu.com &>/dev/null
? ? #6.根據(jù)測試網(wǎng)絡的返回值進行判斷
? ? if [ $? -ne 0 ];then
? ? ? ? echo "當前系統(tǒng)的網(wǎng)絡不可達!不能進行下載更新Yum倉庫!"
? ? ? ? exit
? ? else
? ? ? ? echo "移除舊的Yum倉庫................"
? ? ? ? rm -f /etc/yum.repos.d/* && echo "舊的Yum倉庫移除完畢!" || echo "舊的Yum倉庫移除失?。?
? ? ? ? echo "開始更新下載Yum倉庫Base源............"
? ? ? ? curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo &>/dev/null && echo "Yum倉庫的Base源更新成功!" || echo "Yum倉庫的Base源更新失敗!"
? ? ? ? echo "開始更新下載Yum倉庫Epel源............"
? ? ? ? curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo &>/dev/null && echo "Yum倉庫的Epel源更新成功!" || echo "Yum倉庫的Epel源更新失??!"
? ? ? ? echo "當前操作系統(tǒng)6系列的Yum源更新下載完畢!"
? ? ? ? exit
? ? fi
else
? ? echo "當前操作系統(tǒng)的版本目前不支持下載更新Yum源。"
fi