腳本練習

1、每周的工作日1:30,將/etc備份至/backup目錄中,保存的文件名稱格式為“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的時間
tar Jcf /etc/ /data/ectbak-`date -d “-1 day” +%F-%H`.tar.xz
30 1 * * 1-5 /root/Myscripts/backetc.sh

2、每兩小時取出當前系統/proc/meminfo文件中以S或M開頭的信息追加至/tmp/meminfo.txt文件中
0 */2 * * * cat /proc/meminfo |grep “^\(S\|M\)” >>/tmp/meminfo.txt

3、工作日時間,每10分鐘執行一次磁盤空間檢查,一旦發現任何分區利用率高于80%,就執行wall警報
#!/bin/bash
Diskspace=`df |sed -nr ‘s,^/dev/sd.*[ ]+(.*)%.*,\1,p’ |sort -nr |head -1`
Diskinode=`df -i |sed -nr ‘s,^/dev/sd.*[ ]+(.*)%.*,\1,p’ |sort -nr |head -1`

if [ $Diskspace -gt 80 -o $Diskinode -gt 80 ] ;then
wall “Disk space will not enough space!”
fi

*/10 * * * * /root/Myscripts/diskcheck.sh

1、判斷/var/目錄下所有文件的類型

cd /var ;ls |while read line ;do
file $line
done

2、添加10個用戶user1-user10,密碼為8位隨機字符
for I in {1..10} ;do
if ! id user$I &>/dev/null ;then
useradd user$I
echo `openssl rand -hex 4 |head -c 8` |passwd –stdin user$I
else
echo “user is exist.”
fi
done

3、/etc/rc.d/rc3.d目錄下分別有多個以K開頭和以S開頭的文件;分別讀取每個文件,以K開頭的輸出為文件加stop,以S開頭的輸出為文件名加start,如K34filename stop S66filename start

for I in `ls -1 /etc/rc.d/rc3.d/` ;do
echo $I |sed -r -e ‘/^S/s/(.*)/\1 start/’ -e ‘/^K/s/(.*)/\1 stop/’
done

4、編寫腳本,提示輸入正整數n的值,計算1+2+…+n的總和
read -p “please input a positive integer: ” N
for (( i=0; i <= $N; i++ )) ;do
let SUM+=$i
done
echo $SUM

5、計算100以內所有能被3整除的整數之和
for I in {1..100} ;do
U=$[$I%3]
if [ “$U” -eq 0 ] ;then
let SUM+=$I
fi
done
echo $SUM

6、編寫腳本,提示請輸入網絡地址,如192.168.0.0,判斷輸入的網段中主機在線狀態
read -p “please input a network address: ” DIP
echo $DIP |grep -qE “^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\.){2}0$” || { ech
o “ipaddr error”; exit; }

for I in {1..254} ;do
{
if ping -W1 -c1 ${DIP%.*}.$I &>/dev/null ;then
echo “${DIP%.*}.$I is up.”
fi
}&
done

7、打印九九乘法表
for I in {1..9} ;do
for ((U=1; U<=I; U++)) ;do
T=$[I*U]
echo -n “${I}x${U}=$T ”
done
echo “”
done

8、在/testdir目錄下創建10個html文件,文件名格式為數字N(從1到10)加隨機8個字母,如:1AbCdeFgH.html
mkdir /testdir
for i in `seq 1 10` ;do
touch /testdir/$[RANDOM%11]`openssl rand -base64 20 |grep -o “\([a-z]\|[A-Z]\)” |tr -d ‘\n’ |head -c 8`.html
done

9、打印等腰三角形
for i in `seq $1` ;do
for j in `seq $[$1-i]` ;do
echo -n ” ”
done
for k in `seq $[i*2-1]` ;do
let color=$RANDOM%7+31
echo -e “\e[1;5;${color}m*\e[0m\c”
done
echo
done

1、編寫腳本,求100以內所有正奇數之和
declare -i sum=0
declare -i i=1

while [ $i -le 100 ] ;do
let sum+=i
let i+=2
done
echo $sum
2、編寫腳本,提示請輸入網絡地址,如192.168.0.0,判斷輸入的網段中主機在線狀態,并統計在線和離線主機各多少
trap ‘exit’ 2

read -p “please input a network address: ” DNET
echo $DNET |grep -qE “^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\.){2}0$” || { echo “ipaddr error”; exit; }

for I in {1..254} ;do
{
if ping -W1 -c1 ${DNET%.*}.$I &>/dev/null ;then
echo “${DNET%.*}.$I is up.”
fi
}&
done

unset DNET
unset I
wait
3、編寫腳本,打印九九乘法表
for i in {1..9} ;do
for j in `seq $i` ;do
temp=$[i*j]
echo -e “$j*$i=$temp\t\c”
done
echo
done
4、編寫腳本,利用變量RANDOM生成10個隨機數字,輸出這個10數字,并顯示其中的最大值和最小值
tmpnum=0
for i in {1..10} ;do
RNUM=$RANDOM
echo $RNUM
if [ $tmpnum -lt $RNUM ] ;then
let tmpnum=RNUM
fi
done
echo “Maxinum: $tmpnum”
5、編寫腳本,實現打印國際象棋棋盤
for i in {1..16} ;do
if [ $[i%2] -eq 0 ] ;then
for j in {1..16} ;do
if [ $[j%2] -eq 0 ] ;then
echo -e “\033[41m \033[0m\c”
else
echo -e “\033[47m \033[0m\c”
fi
done
echo
else
for k in {1..16} ;do
if [ $[k%2] -eq 1 ] ;then
echo -e “\033[41m \033[0m\c”
else
echo -e “\033[47m \033[0m\c”
fi
done
echo
fi
done

for i in {1..8} ;do
if [[ $[i%4] =~ [1-2] ]] ;then
for j in {1..4} ;do
if [ $[j%2] -eq 1 ] ;then
echo -e “\033[41m \033[0m\c”
else
echo -e “\033[47m \033[0m\c”
fi
done
echo
else
for k in {1..4} ;do
if [ $[k%2] -eq 0 ] ;then
echo -e “\033[41m \033[0m\c”
else
echo -e “\033[47m \033[0m\c”
fi
done
echo
fi
done

6、后續六個字符串:efbaf275cd、4be9c40b8b 、44b2395c46、f8c8873ce0、b902c16c8b、ad865d2f63是通過對隨機數變量RANDOM隨機執行命令: echo $RANDOM|md5sum|cut –c1-10 后的結果,請破解這些字符串對應的RANDOM值
ad865d2f63:1000
b902c16c8b:3000
f8c8873ce0:6000
44b2395c46:9000
4be9c40b8b:12000
efbaf275cd:15000

for STR in efbaf275cd 4be9c40b8b 44b2395c46 f8c8873ce0 b902c16c8b ad865d2f63 ;do
{
for i in `seq 32767` ;do
tmpstr=`echo $i |md5sum |cut -c 1-10`
if [ $tmpstr == $STR ] ;then
echo $STR:$i
fi
done
}&
done
wait

1、每隔3秒鐘到系統上獲取已經登錄的用戶的信息;如果發現用戶hacker登錄,則將登錄時間和主機記錄于日志/var/log/login.log中,并退出腳本
while :;do
if who |grep -q “hacker” ;then
echo hacker: `who |grep “hacker” |sed -r ‘s,.* ([0-9]+-.*),\1,’` >>/var/l
og/login.log
break
fi
sleep 3

2、隨機生成10以內的數字,實現猜字游戲,提示比較大或小,相等則退出
tmpnum=0
for i in {1..10} ;do
RNUM=$RANDOM
echo $RNUM
if [ $tmpnum -lt $RNUM ] ;then
let tmpnum=RNUM
fi
done

echo “Maxinum: $tmpnum”
3、用文件名做為參數,統計所有參數文件的總行數
while [ “$#” -gt 0 ] ;do
anum=`wc -l $1 |cut -d’ ‘ -f1`
let linunum+=anum
shift
done
echo “lines : $linunum”

4、用二個以上的數字為參數,顯示其中的最大值和最小值
declare -i temp=0
while [ “$#” -gt 0 ] ;do
if [ “$1” -gt “$temp” ] ;then
temp=$1
fi
shift
done
5、掃描/etc/passwd文件每一行,如發現GECOS字段為空,則填充用戶名和單位電話為62985600,并提示該用戶的GECOS信息修改成功
while read line ;do
staring=`echo $line |cut -d: -f5`
if [ -z “$staring” ] ;then
username=`echo $line |cut -d: -f1`
chfn -f “$username” -p “62985600” “$username” &>/dev/null
echo “$username GECOS message is cheange seccessful.”
fi
done < /etc/passwd

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97801

(1)
lidongfeilidongfei
上一篇 2018-05-08
下一篇 2018-05-08

相關推薦

  • 輸入輸出重定向

    重定向就是改變默認位置 ps aux 顯示進程號 大于號(只處理正確信息),以覆蓋的方式把命令輸出到指定的文件,如果a > b;c >b;c會把之前a覆蓋到b的內容覆蓋到。為了保留a和c的數據,這時候用追加的方式解決,雙大于號就用以追加的方式 set -c 不能覆蓋 set +c 允許覆蓋 |> 強行覆蓋 清零|> /data/sky…

    Linux筆記 2018-07-30
  • 第一周作業

    1、描述計算機的組成及其功能。 計算機由運算器,控制器,存儲器,輸入設備和輸出設備五大部分組成。 (1)運算器的功能是用于完成算術運算、邏輯運算。負責計算機執行的所有數學與邏輯功能。 (2)控制器的功能是主要負責對程序所執行的指令進行分析,并協調計算機各部件進行工作計算機的所有 其他部件。 (3)存儲器的功能是用于儲存信息的設備,通常是將信息數字化后再利用電…

    Linux筆記 2018-05-11
  • liunx 基礎知識

    命令提示符 #表示管理員 ?$ 表示普通用戶 ?。顯示提示符格式 ::修改提示符格式 ?: 命令別名 :    

    Linux筆記 2018-04-01
  • TCP/IP

    TCP/IP不是一個協議,而是一個協議族的統稱。里面包括IP協議、IMCP協議、TCP協議。 TCP/IP分層: 這里有幾個需要注意的知識點: 互聯網地址:也就是IP地址,一般為網絡號+子網號+主機號 域名系統:通俗的來說,就是一個數據庫,可以將主機名轉換成IP地址 RFC:TCP/IP協議的標準文檔 端口號:一個邏輯號碼,IP包所帶有的標記 Socket:…

    Linux筆記 2018-05-05
  • 文本三劍客之awk

    awk的名稱來源于三個開發者的姓名:Aho, Weinberger, Kernighan,報告生成器,格式化文本輸出,Linux文本處理三劍客之一。

    2018-05-17
欧美性久久久久