Time of Update: 2017-01-13
Nginx不支援像Apache 一樣使用cronolog來輪轉日誌,但是可以採用以下方式來實現記錄檔的切割: mv /data1/logs/access.log /data1/logs/20111030.log kill -USR1 Nginx主進程號通過mv命令將記錄檔重新命名為/data1/logs/20111030.log,然後發送kill
Time of Update: 2017-01-13
經過測試,指令碼不成立!!網站採用了一些方法進行加速(redis\cdn),這樣就降低使用者訪問後端mysql的壓力、以及前端速度不太好的問題,對使用者請求到的所有頁面進行了緩衝,既然資料緩衝了,解決使用者看到的頁面是否為最新頁面就提上議程,下面這個指令碼就誕生了。嘿嘿。。。Shell#!/bin/bash# Author:Byrd# Version:0.1# Contact:root#t4x.org# define categoryfor category in basic code
Time of Update: 2017-01-13
生產環境中,有可能會出現被其他管理員或使用者修改hosts.allow允許更多的ip登陸機器;為了方便統一管理,我們可以在使用者退出的時候統一修改allow和deny檔案成預設設定。同時也能自動擷取機器所配ip的整個ip段為允許登陸test -f /root/.bash_logout && chattr -i /root/.bash_logoutcat >/root/.bash_logout <<EOFexport
Time of Update: 2017-01-13
最近在定製ISO的時候,有個需求是特定的項目用特定的使用者去運行,取消root許可權。這樣就需要根據項目預設建立一批使用者。於是寫了個簡單的指令碼在系統安裝完成後自動添加使用者簡單例子umask 0002 #大量建立使用者組for groups in aa bb cc dddogroupadd $groupsdone #大量建立相同使用者組的使用者 for users in aa bbdouseradd -g aa $usersdoneuseradd -g cc
Time of Update: 2017-01-13
有時候自己在家裡想找個ip給虛擬機器做測試,但又不記得那些ip是在使用的,那些沒有使用的(不要說你都記得,好吧,我承認我老了),所以寫了個shell指令碼來檢測,方便自己使用.指令碼內容:#!/bin/bash# By rocdk890#Check the network is onlineread -p "Enter your network segment(example 192.168.1.):" ip_numecho "Please wait..
Time of Update: 2017-01-13
通過shell結合awk可以很好判斷某一進程是不是運行,或者某一程式檔案是否被執行,下面以php為例來說明一下。定義一個crontab,每一分鐘執行一次,時間間隔為一分鐘,可能下一次執行的時候,上次還沒有執行完,所以我們要做一下判斷。1,test.php在啟動並執行情況,查看進程# ps -ef |grep test.php root 29884 29881 0 10:48 ?
Time of Update: 2017-01-13
安裝使用此指令碼適用於大部分bash環境,已經在cygwin,ubuntu14.04,debian,centos6,mac-osx等環境通過測試。1.依賴項使用此程式前請確認你的Linux或者Cygwin支援如下命令:curl sed awk basename date grep tr od openssl base642.配置如果你想使用自己的app_key你需要首先註冊一個金山快盤帳號,然後到這裡地址建立一個你自己的應用並把得到的
Time of Update: 2017-01-13
cd /lamp/libxml2-2.6.30 ./configure --prefix=/usr/local/libxml2/ make make install cd /lamp/libmcrypt-2.5.8 ./configure --prefix=/usr/local/libmcrypt/ make make install cd /lamp/libmcrypt-2.5.8/libltdl ./configure --enable-ltdl-install
Time of Update: 2017-01-13
假設我們現在遇到這樣一個問題,公司的關鍵資料copy到測試伺服器上了,在直接將其刪除後,仍然擔心伺服器供應商可以將其恢複,即便是通過fdisk進行重新格式化,也仍然存在被恢複的風險,鑒於此,我們需要編寫一個指令碼,建立很多小檔案(5MB左右),之後不停在關鍵資料所在的磁碟中複製該檔案,以使Linux的inode無法再被重新恢複,為了達到這裡效果,我們需要先構造該檔案,如: 代碼如下複製代碼
Time of Update: 2017-01-13
在工業應用中,有些來自於工業裝置的檔案將會被放到指定的目錄下,由於這些檔案需要再被重新格式化後才能被更高層的軟體進行處理。而此時負責處理的指令碼程式極有可能是多個執行個體同時運行,因此這些執行個體之間就需要一定的同步,以避免多個執行個體同時操作一個檔案而造成的資料不匹配等問題的發生。檔案鎖定命令可以協助我們實現這一同步邏輯。 代碼如下複製代碼 />
Time of Update: 2017-01-13
Shell指令碼中參數傳遞方法常用有8種1. $# 傳遞到指令碼的參數個數2. $* 以一個單字串顯示所有向指令碼傳遞的參數變數。與位置變數不同,此選項參數可超過9個3. $$ 指令碼啟動並執行當前進程ID號4. $! 後台啟動並執行最後一個進程的進程ID號5. $@ 與$#相同,但是使用時加引號,並在引號中返回每個參數6. $- 顯示shell使用的當前選項,與set命令功能相同7. $? 顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤8.
Time of Update: 2017-01-13
解決方案:1. 先使用split命令切割大檔案,每個小檔案儲存100萬行split 參數:-b :後面可接欲分割成的檔案大小,可加單位,例如 b, k, m 等;-l :以行數來進行分割;#按每個檔案1000行來分割除split -l 1000 httperr8007.log httperr httpaa,httpab,httpac ........ #按照每個檔案100K來分割split -b 100k httperr8007.log
Time of Update: 2017-01-13
在使用一些命令時(如:ls、git),剛好遇到一些需求是想很方便地遍曆所有的目錄和檔案,後來經過搜尋,終於找到了一個“神奇”的萬用字元 “**”(兩個星號),在設定了Bash的globstar選項後,**就可以匹配任當前何目錄(包括子目錄)以及其中的檔案。所以,瞭解了一下
Time of Update: 2017-01-13
網站被ddos攻擊,遂寫了個指令碼來抵抗一下,實現方式:1. 攻擊特徵,不同ip不斷POST網站首頁,造成資源消耗過度2. 分析nginx訪問日誌,判斷POST特徵取得用戶端訪問ip3. 將串連數大於50的攻擊ip封殺4. 記錄攻擊ip到文檔5. 每次取得的攻擊ip與已有攻擊ip比較查看原始碼:#!/bin/bash WEBSITES=( example.com) minute_now=`date
Time of Update: 2017-01-13
在Shell指令碼中調用awk是非常自然和簡單的,如果需要調用shell指令碼/命令,則需要使用system()函數,如果需要將變數傳遞給被調用的shell,則寫為 system(“sh my.sh ” $var) 注意第二個引號前有一個空格。awk調用shell,並將變數傳遞給shell,看下面的示範,就一下明白了: 代碼如下複製代碼 jay@jay-linux:/tmp$ cat data.txt var1 var21
Time of Update: 2017-01-13
$0:擷取當前執行指令碼的檔案名稱,包括路徑。[root@test script]# cat 0.sh #!/bin/bashecho $0[root@test script]# sh 0.sh 0.sh[root@test script]# cat 0.sh #!/bin/bashdirname "$0"basename "$0"[root@test script]# sh /byrd/script/0.sh
Time of Update: 2017-01-13
test 條件運算式說明檔案符號:[root@LAMP test]# help testtest: test [expr] Evaluate conditional expression. Exits with a status of 0 (true) or 1 (false) depending on the evaluation of EXPR. Expressions
Time of Update: 2017-01-13
一些以靜態頁面為主的網站,可能不方便的沒有產生sitemap 。而為了加快seo/seo.html" target="_blank">搜尋引擎的收錄,最好能主動做好sitemap,通過站長工具提交或寫入robots檔案,這樣能加快百度、google等的收錄。下面以百度sitmap為例, 通過shell實現的代碼如下: 代碼如下複製代碼 cd /data/wwwfind . -name *.htm > site.txtsed -i 's/.//http://news.36
Time of Update: 2017-01-13
shell中的if語句需要做一個正則判斷,查了一下文法記錄之。 代碼如下複製代碼 DATEPATTERN="^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$"if [[ "$STARTDATE" =~ $DATEPATTERN ]] && [[ $ENDDATE =~ $DATEPATTERN ]]; then :else
Time of Update: 2017-01-13
當在linux伺服器上進行了svn代碼下載後,要同步到web目錄裡去的話,就要把.svn這個檔案夾給清理乾淨,給安全性增加一點保障.指令碼內容:del_svn.sh 代碼如下複製代碼 #!/bin/bashcd /home/trunk/find ./ -name ".svn" |xargs -n1 echo > /dev/null 2>&1find ./ -name ".svn" -print0 |