# 去掉/\兩個字元,取第5到14位。
openssl rand -base64 40 |
sed's/[/\]//g'
|cut -c 5-14
# 或者生成16位隨機字元,1個,要包含數字-n和特殊字元-y。
pwgen 16 1 -n -y
#!/bin/bash
filename=_faster.html
dirname=
"/test"
cd$dirname
||exit 1
for n in`ls
`doname=
$(echo $
|awk -f '_''')
mv$n$$
done
#!/bin/bash
path=
"/test"
cd$path
&& \ls|
awk -f '_'''|
bash
rename faster.html slow.html *.html
#!/bin/bash
cmd=
"ping -w 2 -c 2"
ip="192.168.74."
for n in
$(seq 254);do
&done
wait
# 主shell程序需要等待各併發子程序的結束返回
echo finish
file=
$1while
true;do
awk''$1|
grep -v "^$"
|sort
|uniq -c > /tmp/tmp.log
exec
< /tmp/tmp.log
while
read line;
do ip=
`echo $line |
awk''
` count=
`echo $line |
awk`
if[$count -gt 500 ]&&[
`iptables -nl |
grep
"$ip"
|wc -l`
-lt 1 ]
;then
iptables -i input -s $ip -j drop
echo
"$line is dropped"
>> /tmp/droplist_$(
date +%f)
.log
fidone
sleep 3600
done
#!/bin/sh
myuser=root
mypass=123456
mycmd=
"mysql -u$myuser -p$mypass -e"
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 -e"
mydmp=
"mysqldump -u$myuser -p$mypass"
[! -d $dbpath]&&
mkdir
$dbpath
for db in
`$mycmd "show databases;"
|sed
'1d'
|egrep -v "mysql|schema|sys"`;
doif
[ -z `
echo $db|
grep
"test"` ]
;then
# 不包含test字串
$mydmp
$db|
gzip
>
$dbpath/$_$(
date +%f)
.sql.gz
fidone
注意文中包含字串的判斷可有多種方式shell判斷字串包含關係的幾種方法
其中「$a =~ $b」是判斷a包含b最簡單的方式。
find /var/html/www -type f |
xargs md5sum > /opt/checksum.bak
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 /opt/filename.*
* /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
# 引數說明
-l 密碼長度
-d 數字的數量
-c 小寫字母的數量
-c 大寫字母的數量
-s 特殊字元的數量
/path/script.sh
/bin/sh /path/script.sh
系統啟動乙個子shell執行呼叫的指令碼(生成新的pid——子shell)。子shell執行的時候父shell處於sleep狀態(s)。子shell執行完畢後返回到父shell。子shell可以繼承父shell的環境變數,但反之不然。
exec /path/script.sh
被呼叫的指令碼與父指令碼在同乙個shell內執行(不產生新的pid),但使用exec呼叫乙個新指令碼後,父指令碼中exec之後的內容就不會再執行了——變身。
source /path/script.sh
. /path/script.sh
source方式開啟的指令碼和父指令碼在同乙個shell中執行(不產生新的pid)。source呼叫乙個新指令碼,執行完成後,父指令碼source之後的內容還會再執行。
exec
while
read line;
doecho
$line
done
cat
file
|while
read line;
doecho
$line
done
while
read line;
doecho
$line
done
<
file
for line in
`cat test.txt`;do
echo
$line
done
測試表示式符號
[ ]test
[[ ]]
(())
邊界是否需要空格yy
yn支援的邏輯運算子
!,-a,-o
!,-a,-o
!,&&,┃┃
!,&&,┃┃
支援的算數運算子
-eq,-gt,-lt,-ge,-le
-eq,-gt,-lt,-ge,-le
-eq,-gt,-lt,-ge,-le和=,>,<,>=,<=
-eq,-gt,-lt,-ge,-le和=,>,<,>=,<=
字串比較
=,==,!=
=,==,!=
=,==,!=
=,==,!=
是否支援通配*nn
yn
Python實現運維案例
python是一種跨平台程式語言,在多種平台都能得到很好的支援,在各種平台環境的運維過程中,有些工作是很繁瑣重複的工作,可以編寫指令碼作為工具輔助運維工作,比如linux中使用shell指令碼,但是shell指令碼編寫 除錯比較困難,支援的輔助庫少,編寫稍微複雜些的功能就比較耗時 容易出錯了。本文通...
Linux運維是什麼?linux運維的基礎知識
如果您對運維行業了解一些,應該會知道,現在的運維早已不是早年的 睡機房 往辦公室打眼一看,分不清是運維攻城獅還是開發程式猿,但是,運維這行也是春天到了,今天linux,明天雲計算的,各種新鮮概念層出不窮,那麼,linux運維是什麼?雲計算運維又是什麼?linux運維需要掌握的基礎知識 1 shell...
Linux運維筆記
總核數 物理cpu個數 x 每顆物理cpu的核數 總邏輯cpu數 物理cpu個數 x 每顆物理cpu的核數 x 超執行緒數 檢視物理cpu個數 cat proc cpuinfo grep physical id sort uniq wc l 檢視每個物理cpu中core的個數 即核數 cat pro...