Time of Update: 2017-01-18
工作中的線上環境有很多的perl命令列的類似一句話的命令,今天總結下perl的命令列編程的一些東西。-e 後面緊跟著引號裡面的字串是要執行的命令:複製代碼 代碼如下:king@king:~$ perl -e ‘print “hello world \n”‘hello world如果是多個命令就可以使用多個-e,這裡是不是想到了sed呢?但是要注意的是中間的哪個“;”.複製代碼 代碼如下:king@king:~$ perl -e ‘print “hello world \n” ;' -e
Time of Update: 2017-01-18
注意:串連時候使用SID指定的database,所以沒有在串連中指定database.#!/usr/bin/perluse strict;use warnings;use DBI;my $db_name="geneva_admin";my $db_passwd="geneva_admin";my $dbh=DBI->connect("dbi:Oracle:","$db_name","$db_passwd") or die "Can't connect to oracle database:
Time of Update: 2017-01-18
大家提供了許多linux開代理的方法,一般用到python等語言,一些伺服器可能不會安裝,然而perl可以說是linux標配的語言,給大家一款Perl語言的socket代理,代碼非常少,而且還支援密碼,效果還是不錯,感覺很穩定。#!/usr/bin/perl $auth_enabled = 0; $auth_login = "hidden"; $auth_pass = "hidden"; $port = 44269; use IO::Socket::INET; $SIG{'CHLD'} =
Time of Update: 2017-01-18
ssh limit perl指令碼主要作用:1.限制一個ssh使用者的最大登入數為n,n可自訂。2.支援白名單,如root、test登入不受限制。如果一個ssh使用者的最大登入數超過指定數字,則後登入的會把先前登入的踢掉,以此達到控制登入數的目的。該指令碼需要主機支援perl,如果沒有,可yum安裝。指令碼源碼:#!/usr/bin/perl -wuse strict;#white listmy @ALLOW_USERS = qw{ test root lulu1};#the
Time of Update: 2017-01-18
一、Tesseract-OCR 是什麼An OCR Engine that was developed at HP Labs between 1985 and 1995… and now at
Time of Update: 2017-01-18
當perl指令碼運行時,從命令列上傳遞給它的參數儲存在內建數組@ARGV中,@ARGV是PERL預設用來接收參數的數組,可以有多個參數,$ARGV[0]是表示接收到的第一個參數,$ARGV[1]表示第二個。使用方法為:複製代碼 代碼如下:perl my.pl $ARGV[0] $ARGV[1]看一個具體例子:比如檔案1的內容:複製代碼
Time of Update: 2017-01-18
Rex 是 Perl 編寫的基於 SSH 連結的叢集組態管理系統,文法上類似 Puppet DSL。官網中文版見 http://rex.perl-china.com 。本文僅為本人在部門 Wiki 上編寫的簡介性文檔。常用命令參數rex 命令參數很多,不過因為我們的環境是 krb 認證的,所以有些參數只能寫在 Rexfile 裡。所以一般固定在存放了 Rexfile 的 /etc/puppet/webui 下執行命令,很多配置就自動載入了。那麼還需要用到的命令參數基本就只有下面幾個:-Tv:
Time of Update: 2017-01-18
指令碼功能:通過ICMP Ping或TCP/SYN探測指定的網域名稱,探測前檢測網域名稱是否有效。file: check.host.pl#!/usr/bin/perluse strict;use Net::Ping;use Net::DNS;use Time::HiRes qw();$| = 1;my $DEFAULT_TIMEOUT = 2;my $PING_TIMEOUT = 2;my $DNS_TIMEOUT = 3;### 查詢網域名稱是否有效sub queryDomain { my
Time of Update: 2017-01-18
Perl 作為一種指令碼語言可以即時地產生和執行代碼。這種特性可以把代碼的編譯延遲到運行時,所以又稱為“動態代碼”。另外, Perl 也如 Java 、 C++ 一樣提供了異常處理機制。本文將初步探討Perl 中實現動態代碼和異常處理機制的函數: eval 。如有錯誤不足,歡迎討論和批評指正。eval 函數可以看作是 Perl 虛擬機器,它的參數就是一段 Perl 代碼。利用 'perldoc –f eval'可以擷取 eval 函數使用協助,其中介紹了它的兩種使用方式:複製代碼
Time of Update: 2017-01-18
首先讓我們來看看有關 Perl 物件導向編程的三個基本定義:1. 一個“對象”是指一個“有辦法知道它是屬於哪個類”的簡單引用。(對象就是引用變數)2. 一個“類”是指一個“有辦法給屬於它的對象提供一些方法”的簡單的包。(類就是包)3. 一個“方法”是指一個“接受一個對象或者類名稱作為第一個參數”的簡單的子程式。(類的方法就是第一個參數為類名或對象的方法)一個類只是一個簡單的包和 C++ 不同,Perl
Time of Update: 2017-01-18
1、去除一個數組中的重複元素:使用grep函數程式碼片段: 代碼:複製代碼 代碼如下:my @array = ( 'a', 'b', 'c', 'a', 'd', 1, 2, 5, 1, 5 ); my %count; my @uniq_times = grep { ++$count{ $_ } < 2; } @array;使用轉換hash程式碼片段: 代碼:複製代碼 代碼如下:my @array = ( 'a', 'b', 'c', 'a', 'd', 1, 2, 5, 1, 5 );
Time of Update: 2017-01-18
用Perl寫了一些監控指令碼,放在crontab中調度執行。有時候會發現一個指令碼已耗用時間過長,會同時跑起多個執行個體,因此有必要為指令碼加上控制,只運行一個執行個體。最簡單自然的想法,在指令碼中檢查並建立一個空的lock檔案,指令碼結束時再刪除。通過判斷檔案是否存在的方式來判斷指令碼是否已經運行。不過這樣做有個bug,如果指令碼運行過程中異常終止,lock檔案沒有正常刪除,就會導致指令碼無法再運行。空的lock檔案不行,那麼考慮在lock檔案中加入一點內容,比如進程的PID號,然後通過檢查該
Time of Update: 2017-01-18
使用串口通訊,在備機端使用如下指令碼檢測來自主機的心跳訊號,一旦未接受次數超過指定記數,備機認為主機DOWN機,自動化佈建為主機的網路參數,頂替主機提供服務。# ! perl -w use strict; use Win32 :: SerialPort; my $port = ' COM2 ' ; # serail port name registried in OS my $count = 0 ; # count number of heartbeat-receiving
Time of Update: 2017-01-18
cpanm是安裝Perl模組的最方便的方法。自動下載安裝依賴包。使用CPAN shell或下載源碼包安裝模組,遇到大量依賴關係,非常頭痛。下面就是一例:安裝MongoDB模組複製代碼 代碼如下:# perl Makefile.PL Warning: prerequisite Class::Method::Modifiers 0 not found.Warning: prerequisite Data::Types 0 not found.Warning: prerequisite
Time of Update: 2017-01-18
程式調用遠端服務,為了確保可用性最好在使用前進行健康檢測,將異常的服務排除。複製代碼 代碼如下:#!/usr/bin/perl#use strict;use IO::Socket;my @servers;$servers[0]=['180.153.100.93',2222];$servers[1]=['180.153.100.93',22];$servers[2]=['180.153.100.93',80];my $i=0;my $interval=3;my
Time of Update: 2017-01-18
這是去年年前寫的一個perl指令碼 哎 年後都沒看過perl了。複製代碼 代碼如下:#!/usr/bin/perluse LWP::Simple;open (FILE,”<file”);while(<FILE>){s/^IP1.*//g;my @file =split(/\,|\s+/,$_);my @file1=”$file[0] $file[1]“;my $IP =”$file[1]” ;my $domain=”$file[0]“;my $url=”http://ip138
Time of Update: 2017-01-18
#!/usr/bin/perl -wuse DBI;use POSIX qw(strftime);my $dbh = DBI->connect(“DBI:mysql:shencan:111.1.32.153:3306″,”shencan”,”shencan”);#my $sql = “select * from shencan.LVS”;#my $sth = $dbh->prepare($sql);#$sth->execute();my $HOSTNAME=`hostname`
Time of Update: 2017-01-18
這幾天看了下perl的事件編程架構AnyEvent,重點參考了一下幾篇文章:http://search.cpan.org/~mlehmann/AnyEvent-7.05/lib/AnyEvent.pmhttp://search.cpan.org/~mlehmann/AnyEvent-7.05/lib/AnyEvent/Intro.podhttp://www.jb51.net/article/55278.htm1、什麼是事件編程?舉個簡單的例子,你瀏覽網頁的時候,你點擊一個圖片,蹭的彈出一個東西,
Time of Update: 2017-01-18
Unix 下常見的處理訊號複製代碼 代碼如下:No Name Default Action Description 1 SIGHUP terminate
Time of Update: 2017-01-18
這裡首先介紹下nali的這個開源小程式,項目地址:http://code.google.com/p/qqwry/以下介紹來自項目的負責人的網站的陳述:複製代碼 代碼如下:下載nali-0.2.tar.gz – 2011-09-11發布(下載連結一,下載連結二)nali-0.1.tar.gz – 2009-08-16發布說明nali,名字取自中文“哪裡”的拼音。nali包含一組命令列程式,其主要功能就是把一些網路工具的輸出的IP字串,附加上地理位置資訊(使用 純真資料庫QQWry.Dat)。例如2