您好,登錄后才能下訂單哦!
這篇文章主要講解了“Linux運維技巧實例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux運維技巧實例分析”吧!
# 去掉/\兩個字符,取第5到14位。 openssl rand -base64 40 | sed 's/[/\]//g' | cut -c 5-14 # 或者生成16位隨機字符,1個,要包含數字-n和特殊字符-y。
法一
#!/bin/bash Filename=_faster.html Dirname="/test" cd $Dirname||exit 1 for n in `ls` do name=$(echo ${n}|awk -F '_' '{print $1}') mv $n ${name}${Filename} done
法二
#!/bin/bash Path="/test" cd $Path && \ ls | awk -F '_' '{print "mv " "$0" "$1"_faster.html"}' | bash
法三
rename
#!/bin/bash CMD="ping -W 2 -c 2" IP="192.168.74." for n in $(seq 254);do { $CMD $IP$n > /dev/null 2>&1 if [ $? -eq 0 ];then echo "$IP$n fi }& done wait # 主shell進程需要等待各并發子進程的結束返回 echo
file=$1 while true; do awk '{print $1}' $1 | grep -v "^$" | sort | uniq -c > /tmp/tmp.log exec < /tmp/tmp.log while read line; do ip=`echo $line | awk '{print $2}'` count=`echo $line | awk {print $1}` if [ $count -gt 500 ] && [ `iptables -nL | grep "$ip" | wc -l` -lt 1 ]; then iptables -I INPUT -s $ip -j DROP echo "$line >> /tmp/droplist_$(date +%F).log fi done sleep 3600 done
不登錄數據庫如何執行sql命令
#!/bin/sh MYUSER=root MYPASS=123456 MYCMD="mysql -u$MYUSER -p$MYPASS for db in db1 db2 db3; do $MYCMD "use $db;show tables;" done
分庫備份
#!/bin/sh MYUSER=root MYPASS=123456 DBPATH=/root/test/db_bak MYCMD="mysql -u$MYUSER -p$MYPASS MYDMP="mysqldump -u$MYUSER -p$MYPASS" [ ! -d $DBPATH ] && mkdir $DBPATH for db in `$MYCMD "show databases;" | sed '1d' |egrep -v "mysql|schema|sys"`; do if [ -z `echo $db|grep "test"` ];then # 不包含test字符串 $MYDMP $db | gzip >$DBPATH/${db}_$(date +%F).sql.gz fi done
注意文中包含字符串的判斷可有多種方式Shell判斷字符串包含關系的幾種方法 其中“$A =~ $B”是判斷A包含B最簡單的方式。
建立初始的文件指紋庫
find /var/html/www -type f | xargs md5sum >
利用指紋庫檢查文件是否被篡改
md5sum -c --quiet /opt/checksum.bak
監測文件數量及文件名的變化
find /var/html/www -type f > /opt/filename.bak find /var/html/www -type f > /opt/filename.now diff
cron
* /3 * * * * /bin/sh /path/to/monitor.sh > /dev/null 2>&1
# 0~32767 echo $RANDOM echo "bulabula$RANDOM" | md5sum | cut -c 8-15 openssl rand -base64 8 date +%s%N head /dev/urandom|cksum cat /proc/sys/kernel/random/uuid apt install expect expect_mkpasswd -l 8 -d 2 -c 3 -C 2 -s 1 yum install expect mkpasswd -l 8 -d 2 -c 3 -C 2 -s 1 # 參數說明
fork方式(分身,復制——產生新的PID)
執行方式
/path/script.sh /bin/sh /path/script.sh
系統啟動一個子shell執行調用的腳本(生成新的PID——子shell)。子shell執行的時候父shell處于Sleep狀態(S)。子shell執行完畢后返回到父shell。子shell可以繼承父shell的環境變量,但反之不然。
exec方式(變身——沿用原來的PID)
執行方式
exec
被調用的腳本與父腳本在同一個shell內運行(不產生新的PID),但使用exec調用一個新腳本后,父腳本中exec之后的內容就不會再執行了——變身。
source方式(類似exec方式,沿用原來的PID)
執行方式
source /path/script.sh .
source方式開啟的腳本和父腳本在同一個shell中運行(不產生新的PID)。source調用一個新腳本,執行完成后,父腳本source之后的內容還會再執行。
法一
exec <file while read line; do echo $line done
法二
cat file | while read line; do echo $line done
法三
while read line; do echo $line done < file
法四
for line in `cat test.txt`; do echo $line done
測試表達式符號 | [ ] | test | [[ ]] | (()) |
邊界是否需要空格 | Y | Y | Y | N |
支持的邏輯運算符 | !,-a,-o | !,-a,-o | !,&&,┃┃ | !,&&,┃┃ |
支持的算數運算符 | -eq,-gt,-lt,-ge,-le | -eq,-gt,-lt,-ge,-le | -eq,-gt,-lt,-ge,-le和=,>,<,>=,<= | -eq,-gt,-lt,-ge,-le和=,>,<,>=,<= |
字符串比較 | =,==,!= | =,==,!= | =,==,!= | =,==,!= |
是否支持通配* | N | N | Y | N |
感謝各位的閱讀,以上就是“Linux運維技巧實例分析”的內容了,經過本文的學習后,相信大家對Linux運維技巧實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。