Time of Update: 2017-01-18
公司近來伺服器測試,需要經常調整系統時間,一兩台還好半,稍微多點,就各種糾結了,筆者這幾台都把筆者快弄瘋了。老大一句話:全部調快3分鐘...過會又全部調慢5分鐘......然後咱們幹活的,各種date 01021511....你懂的.於是為瞭解放生產力--代碼如下:複製代碼 代碼如下:#!/bin/bash # Author: MOS # Script name: etime.sh # Date & Time: 2013-01-02/21:47:58 # Version: 1.0.1 #
Time of Update: 2017-01-18
進程狀態變數1、$$擷取當前shell的進程號(PID)2、$!執行上一個指令的PID3、$?擷取執行上一個命令的傳回值(0為成功,非零為失敗,這個很常用)4、$_在此之前執行的命令或指令碼的最後一個參數複製代碼 代碼如下:cat> test$.shecho'$$='$$echo'$!='$!echo'$?='$?echo'$@='$@echo'$_='$_#輸出如下sh test\$.sh 1 2 3$$=2556$!=$?=0$@=1 2
Time of Update: 2017-01-18
為確保php頁面在後台運行,寫了一個監控指令碼,假設程式異常退出,那麼可以自動重啟。shell指令碼/usr/local/scripts/receve.sh內容:#!/bin/bash#funtion:keep receve.php runningPHP="/usr/local/php5/bin/php"PROGRAM="receve.php"#start dameo$PHP /home/httpd/$PROGRAM
Time of Update: 2017-01-18
客戶的要求,不想讓外國的ip來訪問伺服器,本來要讓機房在上端路由解決,但是那些人不鳥你!!!~~~~這樣的話,只能自己用iptables解決了~~~~~~~~~關於 ip庫 大家可以去 http://www.ipdeny.com/ipblocks/ 下載, 這裡有各個國家的~~~ 複製代碼 代碼如下:#下載ip庫#wget
Time of Update: 2017-01-18
查詢ip地址所用的組件複製代碼 代碼如下:wget http://rfyiamcool.googlecode.com/files/nali-0.1.tar.gz tar zxvf nali-0.1.tar.gz cd nali-0.1 ./configure && make && make install 步驟和nginx是差不多的,只是取日誌裡面的ip地址的方法不一樣~~~複製代碼 代碼如下:#!/bin/bash
Time of Update: 2017-01-18
建立隨機數的方法:複製代碼 代碼如下:1~~~~/dev/urandom在Linux中有一個裝置/dev/urandom是用來產生隨機數序列的。利用該裝置我們可以根據在需要產生隨機字串。比如我們要產生一個8位的字母和數字混合的隨機密碼,可以這樣:複製代碼 代碼如下:[linux@test /tmp]$ cat /dev/urandom | head -1 | md5sum | head -c 86baf92822~~~~其實,linux已經提供有個系統內容變數了。複製代碼
Time of Update: 2017-01-18
複製代碼 代碼如下:useradd.sh#!/bin/bashfor name in tom joy john mark jamesdo useradd $name echo "redhat" | passwd --stdin $namedone好了,執行結束後會自動建立使用者tom、joy、john
Time of Update: 2017-01-18
即比如我有100個可執行檔,互相間沒有特別的先後執行關係,如CODE:複製代碼 代碼如下:job_1job_2job_2.....job_100想用csh/bash來多線程調用執行。比如一次開5個線程,那麼job_1,2,3,4,5一起先開始,那麼其中任何一個線程如果先執行完成,則繼續執行下一個沒有初執行過的檔案,如job_6,7,8....,這樣一直以所指定的線程數來執行所有100個檔案。我本來想用 "&"
Time of Update: 2017-01-18
公司有幾個伺服器開著多個memcached進程,除了要監控他們是否正常telnet通,執行個體是否存在外還要監控他們的快取命中率。針對他們的快取命中率進行警示。網上有個perl寫的,需要編譯安裝。有個python寫的,貼過來運行下,發現python庫版本不對。這麼簡單的指令碼搞得這麼費勁,就手動寫了個。越寫就越覺得shell處理資料,函數,字串數組這方面太弱勢了。還好,湊合用吧。這個指令碼比較簡單,通過check_tcp指令碼擷取memcached的stats資訊。然後將該資訊格式化成一個字串,
Time of Update: 2017-01-18
最近指令碼中總是需要計算,每次都用awk會比較麻煩,就把awk的加減乘除封裝了下,每次調用直接source math.sh就可以了。有些要點要指出,以免以後修改的時候忘記: 1、對兩個數字進行判斷是否為數字,使用awk進行匹配2、對兩個參數進行迴圈校正(寫兩次校正顯得笨拙),需要使用變數的引用${!para}。複製代碼 代碼如下:#!/bin/bash#############################重寫shell中基本數學運算+ - × /#時間:2
Time of Update: 2017-01-18
第一種方法(gzexe):這種加密方式不是非常保險的方法,但是能夠滿足一般的加密用途,可以隱蔽指令碼中的密碼等資訊。它是使用系統內建的gzexe程式,它不但加密,同時壓縮檔。使用方法:複製代碼 代碼如下:gzexe file.sh它會把原來沒有加密的檔案備份為 file.sh~ ,同時 file.sh 即被變成加密檔案;第二種方法(shc):使用 shc 對 Linux shell
Time of Update: 2017-01-18
在這裡我想說的是幾種shell裡的小括弧,大括弧結構和有括弧的變數,命令的用法,如下:1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string},${var:=string},${var:?string} 5.$((exp))
Time of Update: 2017-01-18
要得到正在執行的程式/指令碼自身所存放的絕對路徑,在 PHP 裡面可以用 dirname(realpath(__FILE__)) ; C# 則有 System.Windows.Forms.Application.StartupPath ; java 似乎沒有什麼比較直接的方法,只能利用 CodeSource 來間接擷取 。而在 linux shell 指令碼裡面如果想得到當前指令檔存放的絕對路徑,也沒有太現成的命令可以調用,不過可以通過下面的語句來擷取:複製代碼
Time of Update: 2017-01-18
今天有台伺服器a要把網站程式全部傳輸到另外一台伺服器b上去,但離下班時間就只有1個小時了,為了準時下班,簡單寫了個shell指令碼來監控是否有傳輸完,我先在伺服器a上看了下網站程式總大小為12G,用du -sm查看也就是11517,伺服器也不會有人再傳東西上去了,所以我可以放心容量不會再變大了。系統:centos 5.x需要的軟體:rsync指令碼內容:複製代碼 代碼如下:#!/bin/bashfile=`du -sm /var/www/vhosts/|awk '{print $1}'`ps=`
Time of Update: 2017-01-18
最近看了一篇通過nagios實現MD5即時監控iptables狀態的文章,就想是否可以用shell也做到監控iptables規則改變,經過實驗,就有了下面這個指令碼.系統:centos 5.x指令碼內容:cat check_iptables.sh複製代碼 代碼如下:#!/bin/bashif [ ! -f .count ];then iptables -L -n|md5sum|awk '{print $1}' > ~/.count exit 1else
Time of Update: 2017-01-18
最近本地虛擬機器的空間老是被備份給佔滿,為了偷懶不想自己天天登入上去清除,才寫了這個自動清理指令碼.系統:centos 5.x指令碼內容:cat make_room.sh複製代碼 代碼如下:#!/bin/bash#size=`df -hP|grep /dev/mapper/VolGroup00-LogVol00|awk '{print $4}'|cut -f 1 -d "G"`size=`df -mP|grep /dev/mapper/VolGroup00-LogVol00|awk
Time of Update: 2017-01-18
今天同事發現內部伺服器的硬碟空間不夠了,上面有很多備份,我又不能刪除,重新找了個320g的硬碟掛載了上,想以後shell指令碼下的備份都轉移到新硬碟上,給老硬碟騰出空間來,原備份路徑是/data/onlinesqlbak/,新備份路徑是/disk2/onlinesqlbak/,我find了下備份shell指令碼,這一找嚇死個人,最少都有10-20個備份shell要改,誰叫我是懶人想一下搞定完,好了來看我的解決辦法吧.系統:centos 5.x1.先確認有那些指令碼要改複製代碼
Time of Update: 2017-01-18
公司同事今天找我幫忙修改檔案名稱,我一看,好嘛,幾百個檔案要改名,檔案名稱格式是_01.png _02.png這樣依次類推,同事要求把前面的"_"給去掉,還好要求算簡單,沒有讓我再改成其他名字。一條命令搞定:複製代碼 代碼如下:for i in `ls _*.png`; do mv "$i" `echo "$i" |awk -F '_0' '{print $1 "0" $2}'`; done如果要連_0都去掉的話,就這樣寫:複製代碼 代碼如下:for i in `ls _*.png`; do
Time of Update: 2017-01-18
複製代碼 代碼如下:#!/bin/bash#Description: delete files#=====定義當前年份,月份以及檔案所在目錄=====#currentYear=`date
Time of Update: 2017-01-18
前言*隨著整個互連網的發展,產生了無數大大小小的網站,隨之而來使用者對網站UI和速度體驗也在日益加強,對企業或者個人來說,贏得使用者體驗也就意味著贏得先機。那今天我們在這裡針對網站速度這方面來一起交流,提高網站速度對於營運工程師、程式員來說變得至關重要。營運工程師首先得在日常網站營運中發現影響網站速度的各種因素得逐個推動然後解決。提高網站速度體驗除了本身網站程式最佳化外,對於LinuxSA來說還有大量的工作要做,最佳化系統核心、調整WEB伺服器的參數、最佳化資料庫、增加網站架構快取等等一系列的工