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
Shc可以用來對shell指令碼進行加密,可以將shell指令碼轉換為一個可執行檔二進位檔案。經過shc對shell指令碼進行加密後,會同時產生兩種個新的檔案,一個是加密後的可執行檔二進位檔案(檔案名稱以.x結束),另一個是C語言的原檔案(檔案名稱以.x.c結束)。 下面就說明一下shc的安裝,參數,以及使用樣本:下載安裝:(官網下載地址: http://www.datsi.fi.upm.es/~frosal/sources/)複製代碼 代碼如下:# wget
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
複製代碼 代碼如下:#!/bin/shwhile sleep 30doSquidNum=`ps -ef|grep squid|grep -v grep|wc -l`#HttpNum=`netstat -an|grep 0.0.0.0:80|grep -v grep|wc -l` #80狀態if [ $SquidNum != 3 ] ; then/etc/rc3.duid startadddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`echo "$adddate
Time of Update: 2017-01-18
一、安裝Email發送程式複製代碼 代碼如下:yum install sendmail mutt二、安裝FTP用戶端程式本指令碼需要用到FTP用戶端程式將檔案上傳到FTP空間上面,因此必須安裝FTP用戶端,否則將出現ftp命令無法找到的錯誤。安裝步驟請參考:《CentOS提示ftp:command not found》三、在/root目錄下建立指令檔:AutoBackupToFtp.sh,內容如下:複製代碼
Time of Update: 2017-01-18
複製代碼 代碼如下:amosli@amosli-pc:~/learn$ script -t 2> timing.log -a output.session#開始錄製Script started, file is output.sessionamosli@amosli-pc:~/learn$ hello1No command 'hello1' found, did you mean: Command 'hello' from package 'hello-debhelper'
Time of Update: 2017-01-18
參數:pathname,儲存臨時檔案的路徑檔案名稱,需要手動free()掉。dir,臨時檔案的路徑,如果TMPDIR環境變數不為空白,則此參數被忽略,轉而使用環境變數。pfx,臨時檔案名稱的首碼,只使用前5個字元。註:建立的臨時檔案需要手動unlink()掉。建立臨時檔案的函數 複製代碼 代碼如下:int Make_temp_file(char **pathname,const char *dir,const char *pfx){ char *ptr,*tmp;
Time of Update: 2017-01-18
複製代碼 代碼如下:#include "wrap.h"#define MYDOMAIN_FLAG "/tmp/.mydomain_log"void domain_end(){ Unlink(MYDOMAIN_FLAG);}int domain_init(){ int
Time of Update: 2017-01-18
複製代碼 代碼如下:#include"apue.h"int userlogin(struct passwd **);int main(){ int ret,i=0; long ret_cwd; struct passwd *pw; char buf[128],hostname[16],usercwd[128]; char *ptmp1; do{ ret =
Time of Update: 2017-01-18
測試下預取的效果,利用CPU始終查看效果。根據實驗發現,預取地址在地址使用之前的十行左右代碼處效果比較好!複製代碼 代碼如下:#include <stdio.h>#define MAX_LEN 1000000static inline void prefetchnta(void *addr) //預取部分{ __asm__("movl %0, %%eax"::"a"(addr)); __asm__(".byte
Time of Update: 2017-01-18
處理序間通訊的目的資料轉送:一個進程需要將它的資料發送給另一個進程,發送的資料量在一個位元組到幾MB之間。共用資料:多個進程想要操作共用資料,一個進程對共用資料的修改,別的進程應該立刻看到。通知事件:一個進程需要向另一個或一組進程發送訊息,通知它(它們)發生了某種事件(如進程終止時要通知父進程)。資源共用:多個進程之間共用同樣的資源。為了作到這一點,需要核心提供鎖和同步機制。進程式控制制:有些進程希望完全控制另一個進程的執行(如Debug進程),此時控制進程希望能夠攔截另一個進程的所有陷入和異常
Time of Update: 2017-01-18
線程分類線程按照其調度者可以分為使用者級線程和核心級線程兩種。(1)使用者級線程
Time of Update: 2017-01-18
設計並發隊列複製代碼 代碼如下:#include <pthread.h>#include <list>using namespace std;template <typename T>class Queue { public: Queue( ) { pthread_mutex_init(&_lock,
Time of Update: 2017-01-18
如果想要在變數後面添加一個字元,可以用一下方法:複製代碼 代碼如下:$value1=home$value2=${value1}"="echo $value2把要添加的字串變數添加{},並且需要把$放到外面。這樣輸出的結果是:home=,也就是說串連成功。又如:複製代碼 代碼如下:[root@localhost sh]# var1=/etc/[root@localhost sh]# var2=yum.repos.d/[root@localhost sh]# var3=${var1}${var2}[
Time of Update: 2017-01-18
一例批量轉換目錄下檔案編碼的shell指令碼代碼。需求描述:由於從window轉linux過來,很多原來win下的gbk檔案需要轉換成utf8。以下指令碼僅判斷非utf8檔案轉換成utf8檔案,並且預設非utf8檔案為gbk,如果檔案類型不一致需要修改。例子:複製代碼 代碼如下:#!/bin/bash# File Name: iconv.sh# Author: wanggy# site: www.jb51.net#show_file(){ for file
Time of Update: 2017-01-18
任務計劃 crontab -l 1 15 * * * /home/dongnan/sh/split.sh >> /home/dongnan/sh/cron.log 2>& nginx 日誌 ls /var/log/nginx/ 20130730-access.log.gz 20130801-access.log.gz 20130803-access.log.gz 20130730-error.log.gz
Time of Update: 2017-01-18
不知道各位同鞋有沒有管理數百台的Linux 作業系統的經曆,雖然通過ssh私匙可以免密碼登陸,但是每天輸入幾十遍的伺服器ip 地址,我真的好像砸碎鍵盤,所以後來學會偷懶利用shell 指令碼登陸,思路只是把ip 地址的最後一位傳遞給shell 指令碼,就可以最快速登陸了,如果有多個不同子網的ip 地址,建立相應的shell 指令碼即可。 使用方法 [zongming@monitor ~]$ ssh5 113 環境變數 echo $PATH
Time of Update: 2017-01-18
shell指令碼中echo顯示內容帶顏色顯示,echo顯示帶顏色,需要使用參數-e 格式如下: 複製代碼 代碼如下:echo -e "\033[字背景顏色;文字顏色m字串\033[0m" 例如: 複製代碼 代碼如下:echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的顏色 註: 1、字背景顏色和文字顏色之間是英文的"" 2、文字顏色後面有個m 3、字串前後可以沒有空格,如果有的話,輸出也是同樣有空格
Time of Update: 2017-01-18
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
Time of Update: 2017-01-18
一個簡單的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