天天看點

shell練習comment = Share Allpath = ""browseable = yespublic = yeswritable = no

1、

[root@centos7 shell]# cat test.sh 

#!/bin/bash

#1.取出www.aaa.com/root/123.htm

echo $var|awk -F "//" '{print $2}'

#2.取出123.htm

echo $var|awk -F "/" '{print $5}'

#3.取出http://www.aaa.com/root

echo $var|awk -F "/123" '{print $1}'

#4.取出http:

echo $var|awk -F "://" '{print $1}'

#5.取出http://

echo $var|awk -F "www" '{print $1}'

#6.取出123

echo $var|awk -F "[/ .]+" '{print $6}'

#7.取出123.htm

echo $var|awk -F "[/ ]+" '{print $4}'

2、

我們使用的雲主機,購買一塊雲盤後,預設并不是挂載狀态的,用shell寫一個腳本,隻要把盤符和挂載點以參數的形式提供給腳本,該腳本就可以自動格式化、挂載。

要求:

1 不用分區,直接格式化

2 格式化為ext4檔案系統類型

echo "Useage $0 盤符 挂載點, 如: $0 /dev/xvdb /data"

if [ $# -ne 2 ]

then

exit

fi

if [ ! -b $1 ]

then 

echo "你提供的盤符不正确,請檢查後再操作"

exit 1

mkfs -t ext4 $1

if [ ! -d $2 ] ;then

mkdir -p $2

n=<code>egrep " $2 " /etc/fstab|wc -l</code>

if [ $n -eq 0 ]

echo "$1 $2 ext4 defaults 0 0" &gt;&gt; /etc/fstab

mount -a

else

mount $1 $2

echo "配置檔案/etc/fstab中已經存在挂載點$2,請檢查一下."

3、需求背景:

discuz論壇,每天有很多注冊機注冊的使用者,然後發垃圾廣告文章。雖然使用了一些插件但沒有效果。分析通路日志,發現有幾個ip通路量特别大,是以想到可以寫個shell腳本,通過分析通路日志,把通路量大的ip直接封掉。

但是這個腳本很有可能誤傷,是以還需要考慮到自動解封這些ip。

思路:

1 可以每分鐘分析1次通路日志,設定一個門檻值,把通路量大的ip用iptables封掉80端口

2 每20分鐘檢測一次已經被封ip的請求資料包數量,設定門檻值,把沒有請求的或者請求量很小的解封

4、腳本安裝samba服務

is_samba_installed=<code>rpm -qa|grep samba|wc -l</code>

if [ $is_samba_installed != 0 ]

echo "You had already installed Samba."

exit 0

echo "It will install Samba."

sleep 1

cnfdir="/etc/samba/smb.conf"

chkok(){

if [ $? != 0 ]

echo "Error, Please try again."

}

yum install -y samba

chkok

sed -i 's/MYGROUP/WORKGROUP/' $cnfdir

sed -i 's/user/share/' $cnfdir

#在最後一行新增[fish]

sed -i '$a[fish]' $cnfdir

if [ -d $1 ]

cd $1

echo "test" &gt; test.txt

sed -i '$a[fish]\n\tcomment = Share All\n\tpath = "'$1'"\n\tbrowseable = yes\n\tpublic = yes\n\twritable = no' $cnfdir

#類似:\n換行 \t tab鍵

#[fish]

mkdir $1

/etc/init.d/smb start

echo "Please input [\sambaIP\sharename] to access the share dir."

本文轉自方向對了,就不怕路遠了!51CTO部落格,原文連結: http://blog.51cto.com/jacksoner/2045286,如需轉載請自行聯系原作者