case語法案例

2022-07-11 11:12:12 字數 2834 閱讀 4117

新增刪除openvppn使用者的指令碼

1)nginx啟動成功會有乙個pid檔案,所以根據判斷該檔案是否存在來確定nginx是開啟還是關閉狀態

2)通過指令碼傳入引數start或stop,通過case語句取值判斷

3)為了專業,呼叫系統函式庫的action函式

4)對函式及命令允許的返回值進行處理,是指令碼看起來更專業、規範

5)通過chkconfig來管理nginx指令碼,實現開機自啟動

#!

/bin/sh

# chkconfig:

2345

4098

# description: start/stop nginx server

path=

pid=

retval=0.

/etc/init.d/functions

start()

stop()

case "$1"

instart)

start

retval=$?;;

stop)

stop

retval=$?;;

restart)

stop

sleep 1

start

retval=$?;;

*)echo $"usage: $0 "

exit 1

esac

exit $retval

chomod +x /etc/init.d/nginxd

1) 命令用法:

實現通過傳參的方式往/etc/openvpn_authfile.conf裡新增使用者

usage: sh adduser username

2) 傳參要求:

-add 表示新增後面接的使用者名稱

-del 表示刪除後面接的使用者名稱

-search 表示查詢後面接的使用者名稱

3) 細節要求

如果使用者存在則不能新增,不存在則不能刪除,查詢結果要給使用者明確提示

/etc/openvpn_authfile.conf不能被所有外部使用者直接刪除及修改

#!

/bin/bash

./etc/init.d/functions

file_path=

/etc/openvpn_authfile.conf

[-f $filepath ]

|| touch $filepath

usage()

username"}if

[ $uid -ne 0

] then

echo "you are not root,must use root"

exit 1

fiif

[ $# -ne 2

] then

usage

exit 2

ficase "$1"

in-add|

-a) shift #位置引數左移,$2替換$1

if grep "^$1$" $

>

/dev/

null

2>&1

then

action $"vpnuser,$1 is exist"

/bin/

false

exit

else

chattr -i $

/bin/cp $ $

.$(date +

%f%t)

echo "$1"

>

>$

[ $?

-eq 0

]&& action $"add $1"

/bin/

true

chattr +i $fi;

;-d|

-del)

shift

if[ `grep "\b$1\b" $

|wc -l` -lt 1

] then

action $"vpnuser,$1 is not exist"

/bin/

false

exit

else

chattr -i $

/bin/cp $ $

.$(date +

%f%t)

sed -i "/^$$/d" $

[ $?

-eq 0

]&& action $"del $1"

/bin/

true

chattr +i $

exitfi;

;-s|

-search)

shift

if[ `grep -w "$1" $

|wc -l` -lt 1

] then

echo $"vpnuser,$1 is no exist."

exit

else

echo $"vpnuser,$1 is exist."

exit

fi;;*

) usege

exit

;;esac

注意本例中用到的grep三種精確過濾方法

grep -w "oldboy" /file

grep "\bodlboy\b" /file

grep "^oldboy$" /file

metasploit用法案例

metasploit是一款非常好用的滲透測試工具。其中包含了九百多個exploit 攻擊模組 兩百多個payload 攻擊成功之後要執行的一串 通常用來做遠端控制 是做安全工作必不可少的一款軟體。下面展示乙個利用該工具滲透microsoft xp sp2的乙個過程。1.進入介面 msfconsole...

推薦演算法案例

userid,itemid,score 1 11 2 1 12 3 1 13 1 1 14 0 1 15 1 2 11 1 2 12 2 2 13 2 2 14 1 2 15 4 3 11 2 3 12 3 3 14 0 3 15 1 4 11 1 4 12 2 4 14 1 4 15 4 5 11...

linux tcpdump 用法案例

下面的例子以抓取網口eth0為例 如果不加 i eth0 是表示抓取所有的介面包括lo 1 抓取包含10.10.10.122的資料報 tcpdump i eth0 vnn host 10.10.10.122 2 抓取包含10.10.10.0 24網段的資料報 tcpdump i eth0 vnn n...