#!/bin/bash
install_nginx(
)start_nginx(
)stop_nginx(
)reload_nginx(
)while:do
read -p "請輸入您想要執行的操作:<<" cmd
case
$cmd
in start)
start_nginx
;;stop)
stop_nginx
;;restart)
stop_nginx
start_nginx
;;reload)
reload_nginx
;;quit)
exit;;
*)echo
"使用方法:usage: nginx ";;
esac
done
#!/bin/bash
read -p "請輸入您想要建立的使用者數:<<" num
for((i=
1;i<=$num;i++
))do
id hehe$iif[
$? -eq 0 ]
;then
echo
"hehe$i 已經存在"
else
let sum++
pwd=
$(openssl rand -hex 4)
useradd hehe$i
;echo
"$pwd"
|passwd --stdin hehe$i
echo
"成功建立了$sum個使用者"
figrep -w "hehe$i" /tmp/uselist
if[$? -ne 0 ]
;then
echo
"hehe$i
$pwd"
>> /tmp/uselist
fidone
cat /tmp/uselist
實驗三:mysql備份+異地備份指令碼
請開發指令碼實現如下功能:所有功能都需要執行指令碼驗證
準備兩台伺服器,一台為資料庫伺服器,一台為異地備份伺服器
1.通過埠是否監聽判斷mysql 服務是否在執行,若未執行,輸出提示並退出指令碼!若正在執行輸出mysql執行正常
2.通過傳參獲取需要備份的資料庫,將所有獲得的引數儲存在陣列:dblist中
3.使用迴圈遍歷陣列dblist,將資料庫備份在/home/backup目錄下,備份的檔案需要壓縮,檔名需要新增時間戳
4.備份過程需要判斷資料庫是否備份成功!若未備份成功需要傳送郵件通知管理員
5.將每天備份成功的檔案使用scp傳輸到異地備份伺服器的:/opt/mysql_databases_backup目錄下!
6.在使用scp 傳送檔案過程中產生的互動,需要使用expect來自動完成
7.新增計畫任務,指令碼每天的凌晨兩點執行
#!/bin/bash
date=
$(date
"+%y-%m-%d"
)#驗證服務是否正常執行
netstat -lptnu|
grep 3306 >/dev/nullif[
$? -eq 0 ]
;then
echo
"mysql 正在執行"
else
echo
"mysql 未執行"
exit
fi#輸出當前所有的db
cur_db=
$(mysql -e "show databases;"
|sed
'1d'
)echo
"當前存在的db包括:$"
#獲取標準輸入的值
read -p "需要備份的資料庫:<<" db
#建立備份目錄if[
! -d /home/backup/ ]
;then
mkdir -p /home/backup/
fi#遍歷
dblist=
($db
)for db in
$do
mysqldump -ubackup -p123 -h 192.168.10.130 -b $db --skip-lock-tables > /home/backup/$db.sql
cd /home/backup/
tar zcvf $date
.$db.tar.gz $db.sql
#驗證備份檔案
find /home/backup -name $date
.$db.tar.gz > /dev/null
if[$? -eq 0 ]
;then
echo
"$date.$db.tar.gz 備份成功"
echo
"mysql備份成功了!!"
|mail -s "mysql 備份" [email protected]
else
echo
"mysql備份失敗!!"
|mail -s "mysql 備份" [email protected]
fidone
#scp遠端備份
/usr/bin/expect <<
eofspawn scp /home/backup/$date.*.tar.gz 192.168.10.131:/opt/mysql_databases_backup
expect "password"
send "123456\n"
expect eof
eof
shell指令碼小練習(2)
1.通過for迴圈計算10的階乘 bin bash sum 1 for i 1 i 10 i 用類c語言的方法 for i in for i in seq 1 10 do sum expr sum i sum sum i done echo sum 注意 suml i之間的空格,如果寫成 suml ...
shell指令碼練習
顯示系統資訊 bin bash descrition show system information echo os version is cat etc centos release echo kernel version is uname r echo cpu type lscpu grep m...
shell 指令碼練習
bin bash echo hello world chmod x test.sh 使指令碼具有執行許可權 test.sh 執行指令碼for file in ls etc 或for file in ls etc val expr 2 2 注意,這時的計算,2 2運算子和數字之間一定要加空格判斷字串是...