Linux自動化運維

2021-08-14 09:06:11 字數 3346 閱讀 3319

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 靠純手工 重複...