方法1:通過expr 計算變數與一個整數值相加,如果能正常執行則為整數,否則執行出錯,$?將是非0的值複製代碼 代碼如下:expr $args + 0 &>/dev/null方法2:列印變數通過sed替換的方式,將變數中的數字替換為空白,如果執行替換後變數為空白,則為整數複製代碼 代碼如下:echo $args | sed 's/[0-9]//g'如果判斷負數則再用sed過濾負號複製代碼 代碼如下:echo $args | sed 's/[0-9]//g' | sed 's/-//
產生的密碼和使用者輸入可以接受重複數字。所以相對一般規則的猜數字可能難度要大不少。本版本規則:A--數字對,位置也對B--排除A的結果後,數字對,但位置不對開始後,系統化初始化一個4位可重複數字,如“1223”。假設使用者第一次輸入“1234”,那麼系統將提示“2A1B”,前兩位元字“12”相同並且位置也相同,為“2A”。後兩位元字中,使用者輸入的“3”與密文中“3”相同,但兩者位置不同,則為“1B”,最終結果為“2A1B”。再假設使用者此時輸入“1232”,那麼結果則為“2A2B”,計算方法與
1 準備監控機 linux 系統,普通伺服器即可,要求: 安裝ssh 用戶端,如果要傳送簡訊,還需準備簡訊貓並且安裝 gnokii或者 gammu 2 編輯ssh_config 設定檔 /etc/ssh/ssh_config 設定檔,設定"GSSAPIAuthentication no" 被監控的linux 編輯 /etc/ssh/sshd_config ,添加 UseDNS no ,最後重啟sshd 3 使用密匙登入linux 主機 4 建立sh 目錄,用於存放shell 指令碼 mkdir
一個簡單的shell指令碼,用來找出關鍵的服務是否正在運行,適用於Linux或Unix作業系統。該指令碼還可以使用電子郵件發送通知。代碼:複製代碼 代碼如下:#!/bin/bash# Name : service.chk 服務檢測指令碼## 根據自己的環境修改_pgrep="/usr/bin/pgrep"_mail="/usr/bin/mail"## 環境變數_chklist="/usr/bin/php-cgi /usr/sbin/nginx /usr/sbin/lighttpd
問題如下輸入:鏈表
一、常用技巧複製代碼 代碼如下:ssh user@server bash < /path/to/local/script.sh#ssh到遠程伺服器執行一個指令碼,此命令可以避免將指令碼上傳到遠程伺服器ssh user@host cat /path/to/remotefile | diff /path/to/localfile -#比較遠程檔案和本地檔案的差異vim scp://username@host//path/to/somefile#vi一個遠程檔案curl ifconfig.me#
為什麼要包含標頭檔而不是.c檔案測試代碼:複製代碼 代碼如下:m.c檔案:#include"t.c"int main(){test();return 0;}編譯:複製代碼 代碼如下:gcc m.c -o m -WallIn file included from m.c:1:0:t.c: 在函數‘test'中:t.c:3:2: 警告: 隱式聲明函數‘putchar' [-Wimplicit-function-declaration]編譯通過,只有一個警告,產生了可執行檔m,運行它正常,輸出一空格。
對於伺服器來說線上率很重要,出現問題要能及時解決,但系統管理員不能一直守在電腦旁邊,通過指令碼監控網站出現問題及時通過mail通知管理員,如果是139郵箱還可免費手機簡訊通知。註:通過系統直接發送mail容易被攔截,可使用mail串連第三方smtp發送郵件。shell指令碼實現代碼:複製代碼 代碼如下:#!/bin/bash#set -xwhile truedo list=(www.jb51.net
在Bash中, bash的數學運算有點彆扭,很難適應和記住, 只好寫個博文, 方便以後翻翻看. 有四種方式可以進行數學運算:一、let命令複製代碼 代碼如下:#/bin/bashnum1=13num2=14let sum=$num1+$num2echo $sum#自增let sum++#自減let sum--#簡寫形式let sum+=1let sum-=2#順便吐槽下,let sum=(1+3)*(2+2)居然不行, 果然很爛有沒有!二、 $[]形式複製代碼
今天公司同事要我整個adsl自動重撥的shell,並檢測是否連上了,這樣才能保證自我裝載伺服器不掉網,好吧,下面我把指令碼發出來.系統:centos 5.x指令碼1:複製代碼 代碼如下:cat /root/soft_shell/auto_adsl_1.sh #!/bin/bashgateway=`ifconfig ppp0 |grep P-t-P| cut -f 3 -d ":"|cut -f 1 -d " "`inter=`ifconfig |grep ppp0|awk '{print $1}
說明:大家平時對Linux伺服器安全主要是對系統使用者的檢查,登陸伺服器IP檢查,以及防火牆狀態檢查!1.需要把正確系統使用者名稱儲存在/root/liu_shell/local_user.txt檔案中,然後進行比較!2.對登陸IP判斷是不是以192.168.1和192.168.2開頭的IP為正常IP!3.判斷iptables狀態!複製代碼 代碼如下: #!/usr/bin/python#coding=utf-8import
方法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
複製代碼 代碼如下:#!/bin/bash#!/usr/bin/expect -f#!/usr/bin/env bashyum install -y expect wgetcd /rootwget http://172.16.92.99/share/tar/vtune_amplifier_xe_2013_update15.tar.gzwget http://172.16.92.99/share/tar/EVAL_L_VT__VGXB-RDCJPN8X.lictar -zxvf
作為一名Linux SA,日常營運中很多地方都會用到指令碼,而伺服器的ip一般採用靜態ip或者MAC綁定,當然後者比較操作起來相對繁瑣,而前者我們可以設定主機名稱、ip資訊、網關等配置。修改成特定的主機名稱在維護和管理方面也比較方便。如下指令碼用途為:修改ip和主機名稱等相關資訊,可以根據實際需求修改,舉一反三!#!/bin/sh #auto Change ip netmask gateway scripts #wugk 2012-12-17 cat << EOF
阿里雲主機一鍵安裝lamp,lnmp,自動安裝指令碼,由阿里雲主機分享一鍵安裝包下載地址:點擊下載1、阿里雲分享的一鍵安裝lamp,lnmp,此安裝包包含的軟體及版本為:複製代碼 代碼如下:nginx:1.0.15、1.2.5、1.4.4apache:2.2.22、2.4.2mysql:5.1.73、5.5.35、5.6.15php:5.3.18、5.4.23、5.5.7php擴充:memcache、Zend Engine/ OPcacheftp:(yum/apt-get安裝)phpwind:8
一、定義shell函數(define function)文法:[ function ] funname [()] { action; [return int;] }說明:1、可以帶function fun() 定義,也可以直接fun() 定義,不帶任何參數。 2、參數返回,可以顯示加:return 返回,如果不加,將以最後一條命令運行結果,作為傳回值。 return後跟數值n(0-255執行個體(testfun1.sh):#!/bin/sh fSum 3 2; function
當一個程式發生故障時,有時候想通過瞭解該進程正在執行的系統調用來排查問題。通常可以用 strace 來跟蹤。但是當進程已經處於 D 狀態(uninterruptible sleep)時,strace 也幫不上忙。這時候可以通過複製代碼 代碼如下:cat /proc/<PID>/syscall來擷取當前的系統調用以及參數。這裡用最近排查的一個問題為例。碰到的問題是,發現一台伺服器在執行 pvcreate 建立物理卷的時候卡死,進程狀態為 D複製代碼 代碼如下:# ps
通過top命令看到的進程的CPU、記憶體的使用率的百分比是一個浮點數,我需要在寫指令碼時對其進行處理,所以學習了一些,總結如下。其實,Shell(這裡是Bash)本身不具備處理浮點計算的能力,但是可以使用“bc”這個高精度的計算機工具來協助,另外,也可以在Bash中調用“awk”指令碼來處理浮點運算。1. 用bc來處理計算(包括整型和浮點計算)bc – An arbitrary precision calculator language(1).
因為經常會用到shell指令碼,所以經常會寫一些,但是我從來沒有系統的學習過shell指令碼,遇到問題,就去看手冊,或者google一下,到了一定的程度才發現自己的基礎真的好差。下面在系統學習shell時,順便寫了點有用的小指令碼。1,備份目錄下面檔案複製代碼 代碼如下:#!/bin/bashE_BADARGS=65case $# in //$#表示轉入參數的個數,sh bak.sh ./ .sh 有二個參數./和.sh0)
一、方法複製代碼 代碼如下:/** * 執行一個shell命令,並返回字串值 * * @param cmd * 命令名稱&參數組成的數組(例如:{"/system/bin/cat", "/proc/version"}) * @param workdirectory * 命令執行路徑(例如:"system/bin/") * @return&