Time of Update: 2017-01-18
shift可以用來向左移動位置參數。Shell的名字 $0第一個參數 $1第二個參數 $2第n個參數 $n所有參數 $@ 或 $*參數個數 $#shift預設是shift 1以下邊為例:複製代碼 代碼如下:cat shift.sh#----------------------------輸出文字-開始----------------------------#!/bin/bashuntil [ -z "$1" ] # Until all parameters used
Time of Update: 2017-01-18
複製代碼 代碼如下:#!/bin/sh# desc: setup linux system security# author:coralzd # powered by www.freebsdsystem.org# version 0.1.2 written by 2011.05.03#account setuppasswd -l xfspasswd -l newspasswd -l nscdpasswd -l dbuspasswd -l vcsapasswd -l gamespasswd -l
Time of Update: 2017-01-18
複製代碼 代碼如下: #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #這裡的-x 參數判斷$myPath是否存在並且是否具有可執行許可權 if [ ! -x "$myPath"]; then mkdir "$myPath" fi #這裡的-d 參數判斷$myPath是否存在 if [ ! -d "$myPath"]; then mkdir "$myPath" fi
Time of Update: 2017-01-18
Shell指令碼:1、#! 指定指令碼執行的shell2、# 注釋 3、命令或文法結構echo "輸入內容"echo 輸出空行執行:1、shell 指令碼 sh example2、給shell指令碼執行許可權 chmod u+x example案例:example sysinfo.sh 3abc x 不能以數字開頭abc3ABC3環境變數-大寫 命令執行結果賦值變數使用
Time of Update: 2017-01-18
發現一個特尷尬的事實。我辛辛苦苦去百度資料,想用rewrite實現針對不同標題來源站故障後的自動跳轉功能,但整個思路裡遺漏了一個嚴重的問題。按我的思路,針對請求的url進行一次curl,然後根據http_code去改寫url或者原樣輸出——這也就意味著,每一個請求,squid都回源去取一次header。那麼對於來源站點來說,前面squid的緩衝率,就是0%!完全沒有效果。得重新想過辦法……難道去看squid原始碼?汗本著有頭有尾善始善終的原則,決定還是把原先那個雞肋想法寫完。根據squid權威指
Time of Update: 2017-01-18
這種email警示指令碼遍地都是,很多用的sendmail、postfix,感覺有些大材小用了;也有些用perl的NET::SMTP和Authen::SASL模組發信的,不過我perl用的不好,老發出些莫名其妙的郵件來(比如if(a>1){print(a);},最後郵件裡的顯示的是0.99……);最後採用sendEmail這個成型的perl程式發信警示,而即時監控部分迴歸shell,終於完成。複製代碼 代碼如下:wget <a
Time of Update: 2017-01-18
linux shell 中"2>&1"的含義指令碼:nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &對於& 1 更準確的說應該是檔案描述符 1,而1 一般代表的就是STDOUT_FILENO,實際上這個操作就是一個dup2(2)調用.他標準輸出到all_result ,然後複製標準輸出到檔案描述符2(STDERR_FILENO),其後果就是檔案描述符1和2指向同一個檔案表項,也可以說錯誤的輸出被合并了.其中0
Time of Update: 2017-01-18
取得字串的長度複製代碼 代碼如下:代碼:%x="abcd"#方法一%expr length $x4# 方法二%echo ${#x}4# 方法三%expr "$x" : ".*"4# expr 的協助# STRING : REGEXP anchored pattern match of REGEXP in STRING尋找子串複製代碼 代碼如下:代碼:%expr index $x "b"2%expr index $x "a"1%expr index&
Time of Update: 2017-01-18
備份資料庫的shell指令碼一複製代碼 代碼如下:#!/bin/bash#指定啟動並執行指令碼shell#運行指令碼要給使用者執行許可權bakdir=/backupmonth=`date +%m`day=`date +%d`year=`date +%Y`hour=`date +%k`min=`date +%M`dirname=$year-$month-$day-$hour-$minmkdir $bakdir/$dirnamemkdir $bakdir/$dirname/confmkdir
Time of Update: 2017-01-18
一、寫備份並清除老日誌Shell指令碼:複製代碼 代碼如下:#!/bin/sh#backup eoslog#author rhao#date 2008-12-27#定義環境變數EOS_HOME=/home/eosSAS_HOME=/home/eos/SAS# 測試主輔結點if test -d '/home/eos/SAS/SAS1_web1'then
Time of Update: 2017-01-18
實現:ssh遠程登入,每次都要指定一堆使用者名稱和密碼,現要求實現自動登入。登入流程:本地A 先登入到 B 再由B 登入到最終的C如下:複製代碼 代碼如下:#!/usr/bin/expect -fset timeout 30spawn ssh Bexpect "password:"send "passwd@\r"expect "]*"send "ssh name@C -p port\r"expect "password:"send
Time of Update: 2017-01-18
環境:本地主機:ha01eth0: 192.168.1.100 //對外IP地址遠程主機:ha02eth0: 192.168.1.200 //對外IP地址本地主機ha01配置:複製代碼 代碼如下:[root@ha01 /]# cd /etc/ssh[root@ha01 ssh]# ssh-keygen -t rsa -N "" (該步驟產生key公私金鑰組,-N ""表示金鑰組短語為空白)Generating public/private rsa key pair.Enter file in
Time of Update: 2017-01-18
bash case語句的例子。分享一段bash shell代碼,對於學習bash的同學理解case語句的用法,會有協助。例子:複製代碼 代碼如下:#!/bin/bash### Program:# File operation# 1.) Open file 2.) Display file 3.) Edit file 4.) Delete file# site:
Time of Update: 2017-01-18
上部:面向過程:順序執行選擇執行: if, case迴圈執行: for, while, until一、for語句 格式: for 變數 in 列表;do 語句1; 語句2;
Time of Update: 2017-01-18
複製代碼 代碼如下:#! /bin/sh # filename killcpu.sh if [ $# != 1 ] ; then echo "USAGE: $0 <CPUs>" exit 1; fifor i in `seq $1` do echo -ne " i=0; while true do i=i+1; done" | /bin/sh & pid_array[$i]=$! ;
Time of Update: 2017-01-18
最近遇到了一個麻煩事:機器上郵件隊列裡老是被塞滿,但是又不知道是什麼地方發郵件寫入的,十分蛋疼,沒辦法,只有臨時處理一下了,寫了個刪除郵件的指令碼rm_mqueue.sh。複製代碼 代碼如下:#/bin/bash ###################################### # touched by lingyun1 on 2014-12-01 # ######################################
Time of Update: 2017-01-18
樣本資源清單如url.txt:複製代碼
Time of Update: 2017-01-18
1.定義變數時, =號的兩邊不可以留空格.eg:gender=femal————rightgender =femal———–wronggender= femal———–wrong2.條件測試語句 [ 符號的兩邊都要留空格.eg:if [ $gender = femal ]; then——-right.echo “you are femal”;fiif[ $gender...-----------------------wrongif [$gender...--------------------
Time of Update: 2017-01-18
前幾天寫的七牛的參賽demo,用bash寫了一個便捷安裝的指令碼,涉及到了路徑相關的判斷,從stackoverflow,加上自己的實踐整理一下。簡單版下面是一個最簡單的實現,可以解決大多數問題,缺陷是對於軟連結顯示的是軟連結所在的目錄lineos:false複製代碼 代碼如下:#!/bin/bashDIR="$( cd "$( dirname "$0" )" && pwd )"完善版這個版本解決了使用ln -s target
Time of Update: 2017-01-18
自己在vps做的kingate服務端,估計最近佔用流量太大了,老是被服務商把我vps重啟,但kingate這個東西是一旦被強制結束掉,是無法開機啟動的,因為要把kingate.pid這個檔案刪除了才能啟動,好吧,對於我們這樣的懶人來說,當然不能自己去登入伺服器去手動刪除並啟動kingate,就寫了個簡單的shell指令碼來替我完成這些。系統:centos 5.x指令碼內容:cat kingate.sh複製代碼 代碼如下:#!/bin/bashkingate=`ps -C kingate