Time of Update: 2017-01-18
主要目的是用於重啟後台比較重要的進程,如果採用killall -9強制kill掉,可能會引起問題。比如資料庫進程。代碼如下:複製代碼 代碼如下:#!/bin/shif [ -z "$1" ]; then /bin/echo "$0 <command line>" exit 1fiparam=''list='2 3 4 5 6 7 8 9'for i in $list; do eval p='$'$i &
Time of Update: 2017-01-18
一行就能搞定,輸出32或者64。可以用“getconf WORD_BIT”和“getconf LONG_BIT”獲得word和long的位元,64位系統中應該分別得到32和64。參考代碼如下:複製代碼 代碼如下:ldconfigif [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LONG_BIT) = '64' ] ; then ln -s /usr/local/mysql/lib/mysql /usr/lib64
Time of Update: 2017-01-18
指令碼 first (測試樣本1) 複製代碼 代碼如下:#!/bin/bashecho 'your are in first file' 問)在當前指令檔中調用另外一個指令檔?方法一: 使用 source指令碼 second (測試樣本2)複製代碼 代碼如下:#!/bin/bashecho 'your are in second file'source first方法二: 使用 .指令碼 second (測試樣本3)複製代碼 代碼如下:#!/bin/bashecho 'your
Time of Update: 2017-01-18
由於區域網路內主機多,VLAN也多,為時常能知道線上主機的數量,編寫指令碼以查驗線上主機。效果是:主機線上顯示綠色,主機離線顯示紅色結果。用法:./ping IP段 例如:./ping 192.168.0複製代碼 代碼如下:#!/bin/bashNETWORK=$1for HOST in $(seq 1 254)do ping -c 1 -w 1 $NETWORK.$HOST
Time of Update: 2017-01-18
1.背景當多個進程可能會對同樣的資料執行操作時,這些進程需要保證其它進程沒有在操作,以免損壞資料。通常,這樣的進程會使用一個“鎖檔案”,也就是建立一個檔案來告訴別的進程自己在運行,如果檢測到那個檔案存在則認為有操作同樣資料的進程在工作。這樣的問題是,進程不小心意外死亡了,沒有清理掉那個鎖檔案,那麼只能由使用者手動來清理了。2.關於flockflock
Time of Update: 2017-01-18
shell數組介紹:複製代碼 代碼如下://陣列變數定義:$ arr=(1 3 6 8 2 5 9 0 7 4)// 預設擷取第一個元素$ echo $arr // 通過下標訪問,下面取的數組第二個元素,shell數組下標是從0開始$ echo ${arr[1]} // 訪問整個數組 $ echo ${arr[@]} or echo ${arr[*]} // 擷取數組的長度(最大下標)$ echo ${#arr[@]} //
Time of Update: 2017-01-18
1、最簡單方法複製代碼 代碼如下::<<BLOCK....注釋內容BLOCK把輸入重定義到前面的命令,但是 : 是空命令,所以就相當於注釋了。如果注釋中有反引號的命令就會報錯,反引號部分不會被注釋掉,例如 var=`ls -l` 就不會被注釋掉。2、解決注釋中有反引號的問題A、方法一複製代碼 代碼如下::<<BLOCK'....注釋內容'BLOCKB、方法二複製代碼 代碼如下::<<'BLOCK....注釋內容BLOCK'C、方法三複製代碼
Time of Update: 2017-01-18
示範效果:1、一級菜單2、二級菜單3、執行操作指令碼參考:複製代碼 代碼如下:#!/bin/bash#author lic(oldboy linux student)#date
Time of Update: 2017-01-18
假設你想測試網頁和一些CGI,而你又不想麻煩Apache安裝完整的包。這個快速的shell指令碼可能只是你所需要的東西。簡而言之,一個web伺服器是一個應用程式,該應用程式將本地文字檔通過網路發送給客戶的請求。如果你讓另一個程式(例如inetd)處理網路情況下,web伺服器可以減少到只有 cat "檔案名稱”發送到stdout。當然,困難將提取部分檔案名稱的HTTP請求字串:任何一個Bash指令碼無法輕易做到。指令碼我們的指令碼應該像其他任何指令碼一樣,加上一些定義:複製代碼
Time of Update: 2017-01-18
在做關鍵詞清洗過程中,需要將一類不符合某個字結尾的詞過濾出來,思路是把這一批詞按最後一個字排序,於是想到了先把這些詞反轉一下,如把12345轉為54321,好像以前在夜息的文章裡看過用shell可以實現,就百度了一下,找到幾個可行的解決方案,現記錄一下。shell實現字串反轉,一句命令搞定!複製代碼 代碼如下:cat keywords.txt|while read line;do echo $line|rev;done命令的:複製代碼 代碼如下:echo
Time of Update: 2017-01-18
用shell快速產生xml格式的sitemap地圖檔案,中小型網站適用。在本次案例中,產生12053條URL的sitemap檔案,僅用時4.3秒!shell代碼如下:複製代碼 代碼如下:cat sitemap.txt|awk 'BEGIN{print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset>"}{print "<url>\n<loc>"$0"</loc>\
Time of Update: 2017-01-18
awkRegex及內建函數執行個體詳解:1、模糊比對:複製代碼 代碼如下:awk ‘{if($3~/97/) print $0}' data.f:如果第三項中含有”97”則列印該行awk ‘{if($4!~/ufcx/) print $0}' data.f:如果第三項中不含ufcx有則列印2、精確匹配:複製代碼 代碼如下:awk ‘{if($5==66) print $0}' data.f:如果第五項是66則列印awk ‘{if($5!=66)print $0}' data.f :
Time of Update: 2017-01-18
學會用shell分析日誌只要一上午!!!很多地方分享了日誌分析的shell指令碼,但是基本沒說每個命令符的具體含義,學習成本還是很高,在這裡總結下,方便大家快速入門。1、在Windows下的使用者要使用shell命令符的話請先安裝cygwin,安裝方法自行Google(搜技術問題請使用google,百度搜不到活該)2、下面粗略介紹下SEO日誌分析常用的命令符用法,需要詳細瞭解每個命令符請使用Google。less 檔案名稱 查看檔案內容 按“q” 退出cat 檔案名稱
Time of Update: 2017-01-18
shell批量採集愛站關鍵詞庫,心血來潮寫著玩的,還不完善,先放出來,後期慢慢更新,功能雖然簡單,同類工具也很多現成的,但畢竟是自己寫出來的工具,感覺還是很不一樣滴!複製代碼 代碼如下:for i in $(seq 1 50);do curl -s http://baidurank.aizhan.com/baidu/jiameng.com/$i/position/|grep -a 'class="zhishu"'|sed 's/<a target="_blank"//g'|sed
Time of Update: 2017-01-18
早之前記的一個筆記了,之前只是記錄了兩句代碼,放出來的話也是一個低品質的頁面,於是設定為了僅自己可見,今晚抽空補充一下。記得當的情景應該是提交sitemap時百度老提示有錯誤的URL,導致sitemap不能正常被抓取,於是在想辦法解決這個問題,所以才有下面這些筆記:用shell批量找出網站空頁面和404錯誤頁面。廢話不多說,直接上shell代碼:複製代碼 代碼如下:time cat sitemap.txt|while read line;do curl -l $line -m 5
Time of Update: 2017-01-18
在整理詞庫的過程中遇到 一個問題,有些其實是同一個關鍵詞之關有空格的話,無法正常被去重,那麼有沒有辦法能快快速去除這些字元中間的空格呢?經過百度一番,找到一個解決辦法,記錄一下。效果如下圖所示,圖上半部分是樣本文本,下半部分就是用shell去掉空格後的效果。其中用到就是下面第3個方法。在UNIX上使用sed命令進行字串處理中常常遇到的問題就是行首行尾的空格怎麼刪除。下面介紹sed是怎樣實現的,當然awk同樣可以。1、刪除行首空格複製代碼 代碼如下:sed ‘s/^[
Time of Update: 2017-01-18
方法1:複製代碼 代碼如下:for file in `ls`; do mv $file $file.txt; done方法2:複製代碼 代碼如下:find . -type f |xargs -i mv {} {}.txt還有一些實驗不成功的,先記錄在此。1.用rename命令修改尾碼名,這個是最簡單最省事的辦法複製代碼 代碼如下:[root@demo test_rename]# ll總計 20-rw-r–r– 1 root root 0 09-27 00:57
Time of Update: 2017-01-18
在網上看到這個單機流量的指令碼,挺不錯的。複製代碼 代碼如下:#!/bin/shusage(){echo “Usage: $0 [-i INTERFACE] [-s INTERVAL] [-c COUNT]”echoecho “-i INTERFACE”echo “ The interface to monitor, default is eth0.”echo “-s INTERVAL”echo “ The time to
Time of Update: 2017-01-18
有時我們在處理和查看檔案時,經常會有很多空行,為了美觀或是有需要時,就有必要把這些除行去掉了,方法如下:1)用tr命令複製代碼 代碼如下:cat 檔案名稱 |tr -s ‘\n'2)用sed命令複製代碼 代碼如下:cat 檔案名稱 |sed ‘/^$/d' 3)用awk命令複製代碼 代碼如下:cat 檔案名稱 |awk ‘{if($0!=”")print}'cat 檔案名稱 |awk ‘{if(length !=0) print $0}'4)用grep命令複製代碼 代碼如下:grep -v “^
Time of Update: 2017-01-18
1. 在shell檔案內部定義函數並引用:複製代碼 代碼如下:[~/shell/function]# cat factorial.sh #!/bin/bashfunction factorial{factorial=1for (( i=1;i <= $1;i++ )) do factorial=$[ $factorial *