Shell指令碼實現尋找字串中某字元最後出現的位置_linux shell

需要對字串尋找其中某個字元最後出現的位置,這個在PHP (strrpos)或者Perl (rindex)裡面都有現成函數可用的功能,在Shell裡面居然一時想不出個道道來。在論壇上發貼也沒人解答(不知道是問題太簡單還是真的很高深...)。因為事情緊急等不得,於是求救大學同學。Pacman不愧是箇中高手,三兩下點醒夢中人:rindex.sh代碼:複製代碼 代碼如下:#!/bin/bashstrToCheck=$1;charToSearch=$2;let pos=`echo

Shell指令碼避免重複執行的方法_linux shell

很多用cron定時執行的shell指令碼可能會由於各種原因執行很久,會有必要在啟動並執行時候先檢查一下自身是否還在運行。本文提供的linux shell指令碼用以檢查以命令sh ...來執行的shell指令碼。要對其他東西進行唯一性檢查,可以稍微修改一下原始碼。複製代碼 代碼如下:# 檢查通過sh命令執行的shell指令碼是不是還在執行當中,避免重複執行. # 把這段代碼放在需要保證唯一性的程式頭部即可# 注意,如果直接把此指令碼放到cron裡面執行的話,必須再grep -v " -c sh "

Shell指令碼實現檢測進程是否正在運行_linux shell

這裡簡單介紹一個自己寫的檢測某個進程是否存在的bash小指令碼。直接上代碼。複製代碼 代碼如下:#!/bin/bashps_out=`ps -ef | grep $1 | grep -v 'grep' | grep -v $0`result=$(echo $ps_out | grep "$1")if [[ "$result" != "" ]];then    echo "Running"else    echo "Not

擷取shell指令碼自身所在目錄的Shell指令碼分享_linux shell

前幾天寫的七牛的參賽demo,用bash寫了一個便捷安裝的指令碼,涉及到了路徑相關的判斷,從stackoverflow,加上自己的實踐整理一下。簡單版下面是一個最簡單的實現,可以解決大多數問題,缺陷是對於軟連結顯示的是軟連結所在的目錄lineos:false複製代碼 代碼如下:#!/bin/bashDIR="$( cd "$( dirname "$0"  )" && pwd  )"完善版這個版本解決了使用ln -s target

Shell指令碼實現精準清除Squid緩衝_linux shell

此指令碼是在張宴的緩衝清理指令碼上做了修改的,主要是增加if選項,並根據$1參數類型來選擇性的列出快取檔案所在地址(因為$1並不固定,有時是特定的jpg類型,有時是網域名稱)目前在自己的Squid快取服務器上應用,感覺採集緩衝網址基本上沒什麼誤差了,歡迎大家試用,爭取將此指令碼做到更加完美(此指令碼在Centos5.4 x86_64,Squid2.7下通過)指令碼內容如下:複製代碼

Shell指令碼中使用for迴圈和cat命令實現按順序合并檔案_linux shell

工作目錄下面有mydoc1.txt,mydoc2.txt...mydoc41.txt,本來想用sed排列依次取值排序,然後用cat來合并這些檔案,發現達不到預期效果,合并令如下所示:複製代碼 代碼如下:ls -lF *.txt | sed  -n '/mydoc1/,/mydoc41/p' | xargs -i cat {}>

Shell指令碼實現監控iptables運行狀態_linux shell

最近在調試伺服器的iptables,自己做了個定時關iptables,但晚上回家很少開電腦,所以就沒法去啟動iptables,當然你可能會說,為什麼不取消定時關閉iptables,我只能說個人的環境不一樣,需求也就不一樣.指令碼內容:vi iptables-reset.sh複製代碼 代碼如下:#!/bin/bash#Powered by blog.slogra.comport=`iptables -vL|grep ssh|awk '{split($NF,a,":");print

Shell指令碼實現監控rsync資料是否傳輸完_linux shell

今天有台伺服器a要把網站程式全部傳輸到另外一台伺服器b上去,但離下班時間就只有1個小時了,為了準時下班,簡單寫了個shell指令碼來監控是否有傳輸完,我先在伺服器a上看了下網站程式總大小為12G,用du -sm查看也就是11517,伺服器也不會有人再傳東西上去了,所以我可以放心容量不會再變大了。系統:centos 5.x需要的軟體:rsync指令碼內容:複製代碼 代碼如下:#!/bin/bashfile=`du -sm /var/www/vhosts/|awk '{print $1}'`ps=`

Shell指令碼實現監控kingate並自動啟動_linux shell

自己在vps做的kingate服務端,估計最近佔用流量太大了,老是被服務商把我vps重啟,但kingate這個東西是一旦被強制結束掉,是無法開機啟動的,因為要把kingate.pid這個檔案刪除了才能啟動,好吧,對於我們這樣的懶人來說,當然不能自己去登入伺服器去手動刪除並啟動kingate,就寫了個簡單的shell指令碼來替我完成這些。系統:centos 5.x指令碼內容:cat kingate.sh複製代碼 代碼如下:#!/bin/bashkingate=`ps -C kingate

Shell指令碼實現監控iptables規則是否被修改_linux shell

最近看了一篇通過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 

expect實現單台、多台伺服器批量scp傳輸檔案_linux shell

今天公司同事要在一台伺服器上對另外兩台同機房的伺服器進行檔案傳輸,兩台伺服器的檔案存放地址一致,密碼和key也一致(我們公司在安全上做得有點變態的),為了效率寫了下面這個指令碼.1.單台傳輸指令碼cat /root/soft_shell/allscp.sh複製代碼 代碼如下:#!/usr/bin/expectif {$argc < 2} {        send_user "usage: $argv0

Shell指令碼實現關閉多餘的tty終端_linux shell

今天給公司新部署伺服器進行最佳化,發現了tty終端居然有6個,為了節省點記憶體,決定只留一個tty終端,其他的都關閉掉,但centos6跟centos5的終端關閉方法完全變了,而且我也比較懶,不想一台一台的設定,寫了下面這個指令碼來節省時間.系統:centos 6關閉tty終端指令碼:cat pkill.sh複製代碼 代碼如下:#!/bin/bashsed -i 's/\/dev\/tty\[1-6\]/\/dev\/tty\[1-1\]/g'

Shell指令碼中實現切換使用者並執行命令操作_linux shell

今天公司同事來找到我說要在伺服器上用另外一個使用者執行python指令碼,但設定到crontab裡卻老是root使用者來執行,為了省事我就想了一個偷懶的辦法,就是用shell指令碼切換到那個使用者,然後去執行那個python指令碼.好了,這篇文章我只示範怎麼用shell指令碼切換到其他使用者執行命令.系統:centos 5.x指令碼內容:cat test.sh複製代碼 代碼如下:#!/bin/bashsu - test

Shell指令碼自動刪除指定大小以上的備份檔案_linux shell

最近本地虛擬機器的空間老是被備份給佔滿,為了偷懶不想自己天天登入上去清除,才寫了這個自動清理指令碼.系統: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

Shell指令碼實現批量替換檔案內容_linux shell

今天同事發現內部伺服器的硬碟空間不夠了,上面有很多備份,我又不能刪除,重新找了個320g的硬碟掛載了上,想以後shell指令碼下的備份都轉移到新硬碟上,給老硬碟騰出空間來,原備份路徑是/data/onlinesqlbak/,新備份路徑是/disk2/onlinesqlbak/,我find了下備份shell指令碼,這一找嚇死個人,最少都有10-20個備份shell要改,誰叫我是懶人想一下搞定完,好了來看我的解決辦法吧.系統:centos 5.x1.先確認有那些指令碼要改複製代碼

Shell命令批量修改圖片檔案名稱_linux shell

公司同事今天找我幫忙修改檔案名稱,我一看,好嘛,幾百個檔案要改名,檔案名稱格式是_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

shell實現tr刪除替換詳解_linux shell

tr(translate縮寫)主要用於刪除檔案中的控制字元,或進行字元轉換。文法:tr [–c/d/s/t] [SET1] [SET2]   #SET1: 字元集1;SET2:字元集2             -c:complement,用SET2替換除SET1以外的字元。

Shell指令碼實現線上伺服器之間對比檔案是否一致_linux shell

工作中有時需要對比檔案是否一致,通過以下指令碼可以實現(比較簡單):分享出來,希望能協助到有同樣需求的朋友~複製代碼 代碼如下:#!/bin/bash#對比伺服器上檔案是否一樣# Richard shen 2012/07/08LC_ALL='en_US.UTF-8'basedir=`dirname $0`HOST=$basedir/host.txtPASSWD="abcd"   #密碼FILE=$basedir/file.txt  

Shell指令碼實現刪除一年前檔案功能分享_linux shell

複製代碼 代碼如下:#!/bin/bash#Description: delete files#=====定義當前年份,月份以及檔案所在目錄=====#currentYear=`date

Shell指令碼實現自動修改IP、主機名稱等功能分享_linux shell

作為一名Linux SA,日常營運中很多地方都會用到指令碼,而伺服器的ip一般採用靜態ip或者MAC綁定,當然後者比較操作起來相對繁瑣,而前者我們可以設定主機名稱、ip資訊、網關等配置。修改成特定的主機名稱在維護和管理方面也比較方便。如下指令碼用途為:修改ip和主機名稱等相關資訊,可以根據實際需求修改,舉一反三!複製代碼 代碼如下:#!/bin/sh  #auto Change ip netmask gateway scripts  #wugk

總頁數: 301 1 .... 193 194 195 196 197 .... 301 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.