• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            colorful

            zc qq:1337220912

             

            linux下PostgreSQL安裝設置

            http://down.chinaz.com/server/201104/244_1.htm

            1、下載postgresql最新版:

            • 軟件大小:32.70MB
            • 軟件類別:國外軟件 | 數據服務器
            • 軟件語言:英文
            • 運行環境:Linux
            • 軟件授權:免費版
            • 更新時間:2012-9-25 9:38:18
            • 相關鏈接:Home Page

            2、解壓文件:

            tar zxvf postgresql-8.3.7.tar.gz cd postgresql-8.3.7

            3、配置:

            ./configure --prefix=/usr/local/pgsql

            4、編譯:

            make

            5、安裝:

            make install

            6、創建用戶組和用戶:

            groupadd postgres useradd -g postgres postgres

            7、創建數據庫庫文件存儲目錄、給postgres賦予權限:

            mkdir /usr/local/pgsql/data cd /usr/local/pgsql chown postgres.postgres data

            8、初始化數據庫目錄:

            切換用戶

            su - postgresql

            初始化數據

            /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

            啟動數據庫

            /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data

            9、配置監聽地址和端口:

            vi /usr/local/pgsql/data/postgresql.conf

            取消以下兩行的注釋

            listen_addresses = '*'  port = 5432

            10、允許遠程連接:

            vi /usr/local/pgsql/data/pg_hba.conf

            添加

            host all all 192.168.1.0/24 trust 

            每項的具體意思在配置文件中有詳細說明
            配置iptables讓遠程主機能訪問:

            vi /etc/sysconfig

            添加

            -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT service iptables restart

            11、讓postgresql數據庫隨系統啟動而啟動:

            將啟動腳本拷貝到/etc/init.d/目錄下,具體執行如下命令:

            cd /etc/rc.d/init.d cp (第一步解壓的安裝文件目錄)/postgresql-8.3.7/contrib/start-scripts/linux postgresql chmod +x postgresql vi postgresql prefix=/usr/local/pgsql PGDATA="/usr/local/pgsql/data" PGUSER=postgres PGLOG="/var/log/pgsql.log"  chkconfig --add postgresql

            啟動數據庫:

            service postgresql start

            posted @ 2013-07-09 18:25 多彩人生 閱讀(361) | 評論 (0)編輯 收藏

            Centos下啟動SSH遠程登錄

            實驗最后如果本地可以ssh,遠端不可以ssh,請關閉iptables。root下執行:/etc/init.d/iptables stop。

            開始本次實驗課題,Centos自帶sshd(ssh服務器端)

            1.啟動sshd(服務器端操作)

            2.遠端ssh(客戶端操作)

            方案一、直接以root登錄,不推薦

            方案二、以普通用戶登錄,這樣誤操作的風險要低一些~

            posted @ 2013-07-07 14:28 多彩人生 閱讀(669) | 評論 (0)編輯 收藏

            crontab防止腳本周期內未執行完重復執行

            個人體會: flock -xn my.lock commond
            my.lock是一個文件,應該可以是任意文件,可以新建一個空文件
            當flock 獲得鎖后就會執行后面的 commond
            測試過程: $1: flock -xn my.lock sleep 20
                          $2: flock -xn my.lock ls
            只有當1返回后, 2的ls才會成功

            crontab防止腳本周期內未執行完重復執行

            如果某腳本要運行30分鐘,可以在Crontab里把腳本間隔設為至少一小時來避免沖突。而比較糟的情況是可能該腳本在執行周期內沒有完成,接著第 二個腳本又開始運行了。如何確保只有一個腳本實例運行呢?一個好用的方法是利用lockf(FreeBSD 8.1下為lockf,CentOS  5.5下為flock),在腳本執行前先檢測能否獲取某個文件鎖,以防止腳本運行沖突。

            lockf的參數如下。

            -k:一直等待獲取文件鎖。

            -s:silent,不發出任何信息,即使拿不到文件鎖。

            -t seconds:設定timeout的時間是seconds秒,如果超過時間,則自動放棄。

            以下Crontab計劃任務執行前,需獲取臨時文件create.lock的文件鎖,此項Crontab計劃任務的內容如下:

            1
            */10 * * * * (lockf -s -t 0 /tmp/create.lock /usr/bin/python /home/project/cron/create_tab.py  >> /home/project/logs/create.log 2>&1)


            若第一個實例在10分鐘內沒有運行完,第2個實例不會運行。我以前是通過Shell腳本來解決這個問題的,比如用while...do循環,然后放在后臺執行。但后來發現其實用flock或lockf方法更為簡單。


            附上linux下的flock的用法:

            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            flock (util-linux 2.13-pre7)
            Usage: flock [-sxun][-w #] fd#
                   flock [-sxon][-w #] file [-c] command...
              -s  --shared     Get a shared lock 
            #共享鎖,在定向為某文件的FD上設置共享鎖而未釋放鎖的時間內,其他進程試圖在定向為此文件的FD上設置獨占鎖的請求失敗,而其他進程試圖在定向為此文件的FD上設置共享鎖的請求會成功
              -x  --exclusive  Get an exclusive lock 
            #獨占或排他鎖,在定向為某文件的FD上設置獨占鎖而未釋放鎖的時間內,其他進程試圖在定向為此文件的FD上設置共享鎖或獨占鎖都會失敗。只要未設置-s參數,此參數默認被設置
              -u  --unlock     Remove a lock 
            #手動解鎖,一般情況不必須,當FD關閉時,系統會自動解鎖,此參數用于腳本命令一部分需要異步執行,一部分可以同步執行的情況
              -n  --nonblock   Fail rather than wait 
            #為非阻塞模式,當試圖設置鎖失敗,采用非阻塞模式,直接返回1,
              -w  --timeout    Wait for a limited amount of time
            #設置阻塞超時,當超過設置的秒數,就跳出阻塞,返回1
              -o  --close      Close file descriptor before running command
              -c  --command    Run a single command string through the shell 執行其后的comand
              -h  --help       Display this text
              -V  --version    Display version

            舉個例子執行如下腳本:

            每天23:30的時候執行一個腳本,但是執行前必須要獲得排他文件鎖,否則無法執行命令

            1
            30 23 * * * flock -xn /tmp/test.lock -c '/usr/local/php test.php'

            posted @ 2013-07-06 16:59 多彩人生 閱讀(6748) | 評論 (0)編輯 收藏

            shell中if做比較

            shell中if做比較

            比較兩個字符串是否相等的辦法是:

                if [ "$test"x = "test"x ]; then

                這里的關鍵有幾點:

                1 使用單個等號

                2 注意到等號兩邊各有一個空格:這是unix shell的要求

                3 注意到"$test"x最后的x,這是特意安排的,因為當$test為空的時候,上面的表達式就變成了x = testx,顯然是不相等的。而如果沒有這個x,表達式就會報錯:[: =: unary operator expected

                

                二元比較操作符,比較變量或者比較數字.注意數字與字符串的區別.

                整數比較

                -eq 等于,如:if [ "$a" -eq "$b" ]

                -ne 不等于,如:if [ "$a" -ne "$b" ]

                -gt 大于,如:if [ "$a" -gt "$b" ]

                -ge 大于等于,如:if [ "$a" -ge "$b" ]

                -lt 小于,如:if [ "$a" -lt "$b" ]

                -le 小于等于,如:if [ "$a" -le "$b" ]

                 大于(需要雙括號),如:(("$a" > "$b"))

                >= 大于等于(需要雙括號),如:(("$a" >= "$b"))

                小數據比較可使用AWK

                字符串比較

                = 等于,如:if [ "$a" = "$b" ]

                == 等于,如:if [ "$a" == "$b" ],與=等價

                 注意:==的功能在[[]]和[]中的行為是不同的,如下:

                 1 [[ $a == z* ]] # 如果$a以"z"開頭(模式匹配)那么將為true

                 2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么結果為true

                 3

                 4 [ $a == z* ] # File globbing 和word splitting將會發生

                 5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么結果為true

                 一點解釋,關于File globbing是一種關于文件的速記法,比如"*.c"就是,再如~也是.

                 但是file globbing并不是嚴格的正則表達式,雖然絕大多數情況下結構比較像.

                != 不等于,如:if [ "$a" != "$b" ]

                 這個操作符將在[[]]結構中使用模式匹配.

                 大于,在ASCII字母順序下.如:

                 if [[ "$a" > "$b" ]]

                 if [ "$a" \> "$b" ]

                 注意:在[]結構中">"需要被轉義.

                 具體參考Example 26-11來查看這個操作符應用的例子.

                -z 字符串為"null".就是長度為0.

                -n 字符串不為"null"

                 注意:

                 使用-n在[]結構中測試必須要用""把變量引起來.使用一個未被""的字符串來使用! -z

                 或者就是未用""引用的字符串本身,放到[]結構中。雖然一般情況下可

                 以工作,但這是不安全的.習慣于使用""來測試字符串是一種好習慣.

            if判斷式
            if [ 條件判斷一 ] && (||) [ 條件判斷二 ]; then
            elif [ 條件判斷三 ] && (||) [ 條件判斷四 ]; then
            else
               執行第三段內容程式
            fi

            例如:

             

            root@Bizbox:~# a=0 root@Bizbox:~# b=0 root@Bizbox:~# c=5          root@Bizbox:~# if [ $a = 0 -a $b = 0 ]&&[ $c != 0 ]; then > echo success > fi success

            if 使用的表達式

            Primary 意義
            [ -a 文件 ] 如果文件存在為真。
            [ -b 文件 ] 如果 文件 存在 而且 是一個 塊-特殊 文件為真。
            [ -c 文件 ] 為真 如果 文件 存在 而且 是一個 字-特殊 文件。

             

            [ -d 文件 ] 為真 如果 文件 存在 而且 是一個 目錄。
            [ -e 文件 ] 為真 如果 文件 存在。
            [ -f 文件 ] 為真 如果 文件 存在 而且 是一個 普通 文件。
            [ -g 文件 ] 為真 如果 文件 存在 而且 已經設置了他的 SGID 位。
            [ -h 文件 ] 為真 如果 文件 存在 而且 是一個 符號連接。
            [ -k 文件 ] 為真 如果 文件 存在 而且 他的粘住位已經設置。
            [ -p 文件 ] 為真 如果 文件 存在 而且 是一個 已經命名的管道 (F 如果O)。
            [ -r 文件 ] 為真 如果 文件 存在 而且 是可讀的。
            [ -s 文件 ] 為真 如果 文件 存在 而且 比零字節大。
            [ -t FD ] 為真 如果 文件 文件描述符已經打開 而且 指向一個終端。
            [ -u 文件 ] 為真 如果 文件 存在 而且 已經設置了他的 SUID (set user ID)位。
            [ -w 文件 ] 為真 如果 文件 為真 如果 文件 存在 而且 是可寫的。
            [ -x 文件 ] 為真 如果 文件 存在 而且 是可執行的。
            [ -O 文件 ] 為真 如果 文件 存在 而且 屬于有效用戶ID。
            [ -G 文件 ] 為真 如果 文件 存在 而且 屬于有效組ID。
            [ -L 文件 ] 為真 如果 文件 存在 而且 是一個 符號連接。
            [ -N 文件 ] 為真 如果 文件 存在 而且 has been mod 如果ied since it was last read。
            [ -S 文件 ] 為真 如果 文件 存在 而且 是一個 socket。
            [ 文件1 -nt 文件2 ] 為真 如果 文件1 has been changed more recently than 文件2, or 如果
            文件1 存在 而且
            文件2 does not。
            [ 文件1 -ot 文件2 ] 為真 如果 文件1 比 文件2 舊, 或者 文件2 存在而且 文件1 不存在。
            [ 文件1 -ef 文件2 ] 為真 如果 文件1 而且 文件2 refer to the same device 而且 inode
            numbers。
            [ -o 選項名 ] 為真 如果 shell 選項 "選項名" 開啟。
            [ -z STRING ] 為真 如果 "STRING"的長度是零。
            [ -n STRING ] 或者 [ STRING ] 為真 "STRING"的長度是非零值。
            [ STRING1 == STRING2 ] 如果兩個字符串相等為真。 "=" may be used instead of "==" for
            strict POSIX compliance。
            [ STRING1 != STRING2 ] 為真 如果 兩兩個字符串不相等。
            [ STRING1 < STRING2 ] 為真 如果 "STRING1" sorts before "STRING2" lexicographically in the
            current locale。
            [ STRING1 > STRING2 ] 為真 如果 "STRING1" sorts after "STRING2" lexicographically in the
            current locale。
            [ ARG1 OP ARG2 ]
            "OP" 是 -eq, -ne, -lt, -le, -gt or -ge 其中一個。 These arithmetic binary operators
            return 為真 如果 "ARG1" is equal to, not equal to, less than, less than or equal to, greater
            than, or greater than or equal to "ARG2", respectively。 "ARG1" 而且 "ARG2" are
            integers。
            表達式可以借以下操作符組合起來, listed in decreasing order of precedence:
            操作符效果
            [ ! EXPR ] 如果EXPR 為假則為真。
            [ ( EXPR ) ] 返回EXPR 的值。 這樣可以用來忽略正常的操作符優先級。

            posted @ 2013-07-06 16:28 多彩人生 閱讀(296) | 評論 (0)編輯 收藏

            linux 刪除所有后綴名相同的文件

            個人經歷:系統centos 6.3

            方法一:
            find 目錄 -name "*.abc" | xargs rm
            命令很危險, 你先執行前半段試試看 是不是你要刪除的文件, 在整條執行

            方法二:
            find . -name '*.exe' -type f -print -exec rm -rf {} \;
            (1) "."    表示從當前目錄開始遞歸查找
            (2) “ -name '*.exe' "根據名稱來查找,要查找所有以.exe結尾的文件夾或者文件
            (3) " -type f "查找的類型為文件
            (4) "-print" 輸出查找的文件目錄名
            (5) 最主要的是是-exec了,-exec選項后邊跟著一個所要執行的命令,表示將find出來的文件或目錄執行該命令。
                 exec選項后面跟隨著所要執行的命令或腳本,然后是一對兒{},一個空格和一個\,最后是一個分號

            -----------------------------------------------------------

            find: paths must precede expression Usage: find [-H] [-L] [-P] [path...] [expression]

            今天在跑腳本的時候看到如下報錯:

            find: paths must precede expression
            Usage: find [-H] [-L] [-P] [path...] [expression]

            然后就上網查了一下,結果搜索到一篇,大概是這樣說的:多文件的查找的時候需要增加單引號

            而我之前一直都是用的雙引號,也沒有遇到問題,這次卻報錯了~

            ssh $ip "cd $path;find . -name'access.$month*.log' -print -exec zip -r access.$month.zip {} \;"

            修改成單引號后,木有再見報錯~

            例子說明:

            1. # 進入tmp目錄新建4個文本文件  
            2. # cd /tmp  
            3. # touch {1,2,3,4}.txt  
            4. # find . -name *.txt  
            5. find: paths must precede expression: 2.txt  

            出現這個提示是因為星號被展開為當前目錄下所有的文件,這樣的匹配當然會出錯。看這個就知道了:

            1. # echo *  
            2. 1.txt 2.txt 3.txt 4.txt  
            3. # echo '*'  
            4. *  
            5. # echo \*  
            6. *  

            想要星號不被展開就需要加上括號或者反斜杠轉義,知道了這些我們就知道該怎么find了

            1. # find . -name '*.txt'  
            2. find . -name '*.txt'  
            3. ./4.txt  
            4. ./2.txt  
            5. ./3.txt  
            6. ./1.txt  
            7. #或者使用反斜杠  
            8.  find . -name \*.txt  
            9. ./4.txt  
            10. ./2.txt  
            11. ./3.txt  
            12. ./1.txt 

            posted @ 2013-07-06 16:15 多彩人生 閱讀(11794) | 評論 (0)編輯 收藏

            How to rename a file in Linux

            //為什么 rename 不行

            mv command renames the file named by the source operand to the destination path named by the target operand. mv command syntax:

            Code:
            mv {old-file-name {new-file-name} mv {old-dir-name} {new-dir-name}
            Rename a file tom.txt to jerry.txt, type:
            Code:
            mv tom.txt jerry.txt
            Rename a directory lgitech to logitech, enter:
            Code:
            mv lgitech logitech

            posted @ 2013-07-06 15:49 多彩人生 閱讀(340) | 評論 (0)編輯 收藏

            進程守護腳本, 如果已運行則不運行

            processExist=`ps aux|grep processName|grep -v "grep" `   // 注意這是Esc下面那個`
            if [ -z "$processExist" ];then
                exec processName
            else
                echo "process is running"
            fi

            posted @ 2013-07-06 15:36 多彩人生 閱讀(301) | 評論 (0)編輯 收藏

            定時自動啟動任務crontab命令用法

            http://www.centos.bz/2011/03/auto-run-task-crontab/

            每個操作系統都有它的自動定時啟動程序的功能,Windows有它的任務計劃,而Linux對應的功能是crontab

            crontab簡介

            crontab命令常見于Unix和類Unix的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于 “crontab”文件中,以供之后讀取和執行。該詞來源于希臘語 chronos(χρόνος),原意是時間。  通常,crontab儲存的指令被守護進程激活, crond常常在后臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。

            crontab用法

            crontab的格式如下面:

            f1 f2 f3 f4 f5 program

            其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行程式的路徑。

            • 當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其余類推
            • 當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其余類推
            • 當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其余類推
            • 當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其余類推

            管理員登錄SSH,輸入命令crontab -e編輯crontab文件,根據上面的格式輸入并保存。

            crontab例子

            每月每天每小時的第 0 分鐘執行一次 /bin/ls :

            1. 0 * * * * /bin/ls

            在 12 月內, 每天的早上 6 點到 12 點中,每隔 20 分鐘執行一次 /usr/bin/backup :

            1. */20 6-12 * 12 * /usr/bin/backup

            周一到周五每天下午 5:00 寄一封信給 alex@domain.name :

            1. 0 17 * * 1-5 mail -s "hi" alex@domain.name &lt; /tmp/maildata

            每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....執行 echo "haha"

            1. 20 0-23/2 * * * echo "haha"

            晚上11點到早上8點之間每兩個小時,早上8點

            1. 0 23-7/2,8 * * * date

            在hp unix,中,每20分鐘執行一次,表示為:0,20,40 * * * * 而不能采用*/n方式,否則出現語法錯誤

            crontab用法其實很容易掌握,懂得使用crontab,對網站和服務器維護起到很大的幫助,比如定時備份,定時優化服務器等。

            posted @ 2013-07-06 15:31 多彩人生 閱讀(406) | 評論 (0)編輯 收藏

            virtual box 共享文件夾

            1 設置共享文件夾
            2 掛載共享文件夾:
                  su root
                  mkdir /mnt/share
                  mount -t vboxsf srcdir /mnt/share
            3 卸載:
                  umount -f /mnt/share

            posted @ 2013-07-04 13:52 多彩人生 閱讀(268) | 評論 (0)編輯 收藏

            【轉載】centos6.2下安裝星際譯王stardict3.0

            星際譯王是一個Linux下很好的翻譯軟件。

            我的系統是centos6.2 32位版。本來在http://code.google.com/p/stardict-3/downloads/list 上下的源碼包安裝。結果每次無法./configure過去。提示

            configure: error: Enchant library not found or too old. Use --disable-spell to build without spell plugin.
            加上--disable-spell參數又出現新的錯誤。網上方法都試了,一直未搞定。

            后來,找到了rpm包后很容易就裝好了。

            1,下載地址(選擇 binary package,):

            32位系統:

            http://pkgs.org/centos-6-rhel-6/naulinux-school-i386/stardict-3.0.2-1.el6.i686.rpm/download/

            64位系統:

            http://pkgs.org/centos-6-rhel-6/puias-x86_64/stardict-3.0.1-22.puias6.x86_64.rpm/download/ 

            2, 用yum安裝

            yum localinstall stardict-3.0.2-1.el6.i686.rpm

            注:我的安裝依賴包為:espeak-1.40.02-3.1.el6.i686.rpm。通過yum自動解決。

            其他軟件包依賴關系等問題請查看:

            http://pkgs.org/centos-6-rhel-6/naulinux-school-i386/stardict-3.0.2-1.el6.i686.rpm.html 

            這時候在附件里面已經可以啟動星際譯王了。只不過這時侯還只能聯網使用。斷網就沒用了,因為沒有中文詞庫。

            3,下載詞庫

            http://pkgs.org/centos-6-rhel-6/puias-i386/stardict-dic-zh_CN-2.4.2-6.puias6.noarch.rpm/download/

            4,安裝詞庫

            rpm -ivh stardict-dic-zh_CN-2.4.2-6.puias6.noarch.rpm

            詞庫安裝問題及說明可以查看以下鏈接

            http://pkgs.org/centos-6-rhel-6/puias-i386/stardict-dic-zh_CN-2.4.2-6.puias6.noarch.rpm.html

            ok!現在斷網也能用了。

            ps:也可以在 http://abloz.com/huzheng/stardict-dic/zh_CN/ 這個網站上下載你想要的其他中英詞庫。下載解壓后將其解壓在 /usr/share/stardict/dic/ 下就行了。

            轉自:http://www.linuxso.com/linuxrumen/29170.html

            posted @ 2013-07-03 23:35 多彩人生 閱讀(2372) | 評論 (0)編輯 收藏

            僅列出標題
            共25頁: First 5 6 7 8 9 10 11 12 13 Last 

            導航

            統計

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            国产女人aaa级久久久级| 久久九九亚洲精品| 四虎久久影院| 狠狠色丁香久久婷婷综合蜜芽五月| 国产精品gz久久久| 久久精品国产男包| 国产成人无码精品久久久免费| 国产精品永久久久久久久久久 | 精品乱码久久久久久夜夜嗨 | 无码人妻久久一区二区三区蜜桃| 亚洲AV乱码久久精品蜜桃| 日本三级久久网| 亚洲va中文字幕无码久久 | 久久免费美女视频| 中文字幕无码免费久久| 久久WWW免费人成—看片| 天堂久久天堂AV色综合| 国产精品乱码久久久久久软件| 久久夜色tv网站| 日韩精品久久久久久久电影蜜臀 | 久久精品中文闷骚内射| 麻豆精品久久久久久久99蜜桃| 亚洲午夜精品久久久久久人妖| 久久香蕉超碰97国产精品| 欧美麻豆久久久久久中文| 99久久精品无码一区二区毛片 | 一本一本久久a久久精品综合麻豆| 四虎国产精品免费久久5151| 久久精品人人槡人妻人人玩AV| 人人妻久久人人澡人人爽人人精品| 久久综合成人网| 亚洲国产高清精品线久久 | 欧美性大战久久久久久| 久久综合久久久| 91精品国产综合久久香蕉 | 高清免费久久午夜精品| 久久这里只有精品18| 久久久女人与动物群交毛片| 亚洲精品高清国产一线久久| 久久99国产精品尤物| 久久99国产亚洲高清观看首页|