linux自動化運維筆記
本節主要講解將命令寫入指令碼中用於實現自動化運維
shell指令碼
1、$意義
2、檢查語法錯誤
3、字型顏色改變
4、快捷鍵使用
5、if else表示式
6、for迴圈
7、seq遍歷
8、將檔案複製到遠端伺服器上
9、資料庫定時備份指令碼
10、··符號的使用
11、crontab定時使用
12、while迴圈
14、req命令的使用
13、學會使用指令碼自動化執行
$0 #獲取當前指令碼名稱
$1~9 #獲取對應引數
$* #獲取所有引數
$? #獲取上一條命令執行過程
$$ #獲取shell指令碼id
up|chmod 777 file
bash -n shell.sh 檢查語法錯誤
sh shell.sh|./shell.sh
echo(寫入輸出) -e(轉義) "\033[...\033[.."
格式: echo -e "\033[字背景顏色;字型顏色m 字串\033[0m"
yyp複製貼上
dd刪除一行
gg 將游標定位到檔案第一行起始位置;
g 將游標定位到檔案最後一行起始位置;
ng或ngg 將游標定位到第 n 行的起始位置
linux shell中 if else以及大於、小於、等於邏輯表示式介紹
if ....; then
....
elif ....; then
....
else
....
fivim 常用快捷鍵
shell中各種括號的作用()、(())、、、{}
seq 遍歷
#!/bin/bash
#echo $0 #獲取當前指令碼名稱
#echo $1 #1-9獲取對應引數 $*獲取所有引數 $?獲取上一條命令執行過程 $$獲取shell指令碼id
echo -e "\033[41;32m please select menu:\033[0m"
echo "1)建立目錄"
echo "2)安裝mysql5"
echo "3)安裝nginx"
echo "4)安裝php5"
read index
#判斷使用者選擇的任務
if [[ $index == 1 ]]; then
echo "請輸入要建立的目錄路徑:"
read dname
mkdir -p $dname
echo "sucess!">>"$dname/b.txt"
else
echo "00"
fi將本機檔案複製到遠端伺服器上
#scp /home/administrator/news.txt [email protected]:/etc/squid
/home/administrator/ 本地檔案的絕對路徑
news.txt 要複製到伺服器上的本地檔案
root 通過root使用者登入到遠端伺服器(也可以使用其他擁有同等許可權的使用者)
192.168.6.129 遠端伺服器的ip位址(也可以使用網域名稱或機器名)
/etc/squid 將本地檔案複製到位於遠端伺服器上的路徑
資料庫定時備份
which mysqldump找
$uid:輸出執行當前shell使用者id,id=0為root
#!/bin/bash
##mysql backup shell
##年月日 時間毫秒
backup_dir=/data/backup-mysql/`data + %y%m%d%s`
mysqldb=mysql
#!/bin/bash
##mysql backup shell
##年月日 時間毫秒
backup_dir=/data/backup-mysql/`data + %y%m%d%s`
mysqldb=mysql
mysql=root
mysqlpwd=123456
mysqlcmd=/usr/bin/mysqldump
#1、檢測當前是否為root使用者
if [[ $uid -ne 0 ]];then
echo "must be root"
exit
fi#2、檢測目錄是否存在
if [[ ! -d $backup_dir ]];then
mkdir -p $backup_dir
echo "目錄建立成功"
else
echo "目錄已存在"
fi#3、開始備份資料庫
$mysqlcmd -u$mysqluser -p$mysqlpwd $mysqldb > $backup_dir/$mysqldb.sql
#4、結果輸出
if [[ $? -eq 0 ]];then
echo "mysql backup success!"
else
echo "backup error!"
fi定時
crontab -e:分時日月周
0 0 * * * /bin/bash /opt/shell3.sh
1 * * * * ll
crontab -l -u root
列出root使用者定時任務
while用法
#!/bin/bash
while read line
doecho "讀取ip:$line"
done < /opt/iplist.txt
例如下面指令碼自動執行mariadb和php安裝
#!/bin/bash
echo "是否安裝mariadb(y/n)"
read yes_or_no
if [[ $yes_or_no == 'y' ]];then
yum -y install php
echo "mariadb安裝成功!"
else
echo "不進行mariadb安裝!"
echo "是否進行php安裝(y/n)"
read yn
if [[ $yn == 'y' ]];then
yum -y install php
echo "php安裝成功!"
else
echo "不進行php安裝"
fifi
sed命令的使用
sed -i '1,$d' file
運維自動化
1,cobbler安裝環境準備 安裝epel epel release 6 8.noarch.rpm x86 64 epel release 6 8.noarch.rpm x86 安裝系列依賴環境 要是區域網用,建議關閉iptables 或是放行25151 80 69埠 和關閉selinux 檢視狀...
自動化運維
考慮的因素 源 打包為映象 發布到映象庫 利用k8s發布到物理機器執行,以服務的形式對外提供服務 目前的做法 0 建立乙個執行遠端命令的框架 1 每個應用建立乙個部署檔案指令碼 a 指定元 位址 c 同步源 到目標主機 d 接受指令碼引數 vername 2 版本號,映象tag fromport 3...
關於linux運維自動化
1.運維自動化 日常的備份 伺服器狀態監控和日誌,通過手動的方式來進行的效率也很低,是一種人力的浪費。因此,早已 是每個運維都必須掌握的看家本領。2.運維工具 括 redhat 提供的 kickstart installations 自動安裝解決方案 cobbler 3.運維階段 1 靠純手工 重複...