於 Linux 分類下的文章
yum的相關設定資料,都在yum.conf這隻檔案裡面,通常都放在/etc/下。對yum而言是相當重要的檔案。因此就來介紹一下此檔吧。
以下為預設的 yum.conf 設定檔
[root@localhost ~]# vim /etc/yun.conf [main] cachedir=/var/cache/yum #設定yum暫存檔的目錄 keepcache=0 #安裝完成後是否要保留軟件包。0為不保留,1為保留。(預設為0) debuglevel=2 #除錯的等級設定。範圍0-10,而預設的是2 logfile=/var/log/yum.log #yum的log記錄位置。 distroverpkg=redhat-release #指定一個套件時,yum會根據這個套件判斷系統的發行 版本。預設為redhat-release。 tolerant=1 #yum是否容忍當程式發生與套件有關的錯誤,若設為1不會出現錯誤訊息, 預設為0 exactarch=1 #設定是否只升級和已經安裝的套件CPU位元(i386、x86_64)相同的套件。 預設為1表示只安裝一致的套件,0表示可以不一致。 obsoletes=1 gpgcheck=1 #可設定為1或0,分別表示是否要進行gpg校驗,若無設定此項。預設也會檢查。 plugins=1 #設定為是否啟用擴充元件,預設為1允許,0表示不允許。 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum # Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h installonly_limit = 5 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d #repo文件存放的位置 |
前言 :
想必大家對yum這個指令應該不陌生吧。輕輕鬆鬆就把想要的東西安裝好了。但是真的了解yum的人應該就不多了。所以今天就來介紹一下yum吧。
一、yum介紹
YUM 是一個自動安裝工具,它可以幫助RPM系統安裝,移除,升級軟體套件(應用程式,函式庫等)。您不需要在一一檢查手冊查閱相依性需要的套件,它能夠自動檢測軟體安裝時的相依性。這使得我們在管理(升級,安裝,移除)相關群組時更加簡單便利。您可以使用YUM擴充套件的界面來安裝簡單的功能。您也可以從其他Python程式來使用(大部份Linux的YUM使用python實作)
二、yum移除與安裝
1. 查詢是否有安裝yum
[root@localhost ~]# rpm -qa | grep yum #若有看到以下內容就比較有安裝 yum-metadata-parser-1.1.2-3.el5.centos yum-3.2.22-33.el5.centos yum-fastestmirror-1.1.16-14.el5.centos.1 yum-updatesd-0.9-2.el5 |
2. 移除yum (移除的方式有兩種擇一即可)
2.1 用yum的方式移除
[root@localhost ~]# yum remove yum* |
在了解怎麼架設Smokeping後,接著來介紹如何在Smokeping上新增監控和當有問題的時後如何發送警報信。
config簡單介紹 :
找到 *** General *** 為此config檔最重要的地方。均為設定資料夾或相關程式的路徑。和一些網頁顯示的資料。
[root@localhost ~]# vim /usr/local/smokeping/etc/config *** General *** owner = FAQ-book #輸入要顯示在網頁上的資料如下圖紅框處 contact = derek@faq-book.com #輸入mail,點選下圖紅框的字後會自行帶出outlook |
找到*** Alerts *** 主要是用來設定警報系統。詳細內容等等下方會有詳細說明
[root@localhost ~]# vim /usr/local/smokeping/etc/config *** Alerts *** to = derek@faq-book.com #設定要收到警報信件的信箱 from = faq@faq-book.com #設定本機發信的帳號 |
找到*** Database *** 這邊主要的設定是在300秒內ping20次,可做調整。
[root@localhost ~]# vim /usr/local/smokeping/etc/config *** Database *** step = 300 #300秒 pings = 20 #ping 20次 |
安裝完Smokeping後,在啟動服務時出現以下錯誤
[root@localhost opt]# /usr/local/smokeping/bin/smokeping start Can't locate RRDs.pm in @INC (@INC contains: /usr/local/smokeping/lib /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 /usr/lib/perl5 /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl .) at /usr/local/smokeping/lib/Smokeping.pm line 13. BEGIN failed–compilation aborted at /usr/local/smokeping/lib/Smokeping.pm line 13. Compilation failed in require at /usr/local/smokeping/bin/smokeping line 8. BEGIN failed–compilation aborted at /usr/local/smokeping/bin/smokeping line 8. |
此錯誤表示在rrdtool安裝時,安裝不完整有缺少檔案
首先先把rrdtool重新安裝一次如下
[root@localhost ~]# yum install libart_lgpl-devel zlib-devel libpng-devel freetype-devel dejavu-lgc-fonts cairo-devel libxml2-devel pango-devel pango freetype
[root@localhost ~]# cd /opt/ [root@localhost ~]# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz [root@localhost ~]# tar -zxvpf rrdtool-1.4.5.tar.gz [root@localhost ~]# cd rrdtool-1.4.5 [root@localhost ~]# ./configure -prefix=/usr/local/ [root@localhost ~]# make [root@localhost ~]# make install [root@localhost ~]# whereis rrdtool rrdtool: /usr/local/bin/rrdtool #安裝完成後的路徑 |
一、Smokeping 介紹
Smokeping的開發者是Tobi Oetiker,同時也是rrdtool的開發者。而Smokeping在圖形顯示方面就有很大的優勢,也是一個不錯用的opensource
二、系統配置 :
Centos 5.6
rrdtool-1.4.5
fping
CGI-SpeedyCGI-2.22
libwww-perl-6.02
smokeping-2.4.2
三、安裝設定 :
1.安裝相關套件
由於Smokeping是用perl所寫的程序,所以是不需要安裝。也正因為是用perl所寫,因此需要使用到一些工具像是rrdtool、fping、libwww-perl等,以及perl的module。都是需要先安裝好,當Smokeping服務啟動時會自動簡查所需要的程序是否都安裝完成。
1.1相關套件
[root@localhost ~]# yum -y install gcc gcc-c++ libxml* pango* httpd* perl* freetype-devel zlib-devel libpng-devel libart_lgpl-devel apr-util-devel apr-devel |
1.2 安裝rrdtool (http://oss.oetiker.ch/rrdtool)
[root@localhost ~]# yum -y install libart_lgpl-devel zlib-devel libpng-devel freetype-devel cairo-devel libxml2-devel pango-devel dejavu-lgc-fonts* pango* freetype* [root@localhost ~]# cd /opt/ [root@localhost ~]# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz [root@localhost ~]# tar -zxvpf rrdtool-1.4.5.tar.gz [root@localhost ~]# cd rrdtool-1.4.5 [root@localhost ~]# ./configure -prefix=/usr/local/ [root@localhost ~]# make [root@localhost ~]# make install [root@localhost ~]# whereis rrdtool rrdtool: /usr/local/bin/rrdtool #安裝完成後的路徑 |
1.3 安裝fping (http://fping.sourceforge.net)
xinetd.conf可以說是預設值的設定檔。假設這邊啟動了rsync服務,但是在rsync此服務並沒有特別去設定參數,因此在設定值部份就會以xinetd.conf為主。
以下是預設定xinetd.conf
[root@localhost ~]# vim /etc/xinetd.conf defaults { # The next two items are intended to be a quick access place to # temporarily enable or disable services. # enabled = #啟用 # disabled = #禁用 # Define general logging characteristics. log_type = SYSLOG daemon info #登錄檔的記錄服務類型 log_on_failure = HOST #發生錯誤時需要記錄的資訊為主機 (HOST) log_on_success = PID HOST DURATION EXIT #成功啟動或登入時的記錄資訊 # Define access restriction defaults # no_access = # only_from = # max_load = 0 cps = 50 10 #同一秒內最大連線數為 50 個,超過則暫停 10 秒 instances = 50 #同一服務的最大同時連線數 per_source = 10 # 同一來源的用戶端的最大連線數 # Address and networking defaults # bind = # mdns = yes v6only = no #是否僅允許 IPv6 # setup environmental attributes # passenv = groups = yes umask = 002 # Generally, banners are not used. This sets up their global defaults # banner = # banner_fail = # banner_success = } includedir /etc/xinetd.d #在/etc/xinetd.d會有更多的設定值 |
以上的設定檔內容大概是說明:「同一個服務的最大連線數為50,而每秒內發起的「新」連線最多50個,若超過的話服務則會停止10秒,而在相同IP同時連線的情況下最多只有10個連線數。而在成功登入和登入失敗情況下所記錄的資訊會有所不同。並且不允許IPv6的連線。」
參數說明 :
-h --help show this help (-h works with no other options) -v, --verbose 列出rsync過程 詳細內容 -q, --quiet 不列出rsync過程 詳細內容 -c, --checksum skip based on checksum, not mod-time & size -a, --archive archive mode 權限保存模式,相當於-rlptgoD 參數(no -H) --no-OPTION turn off an implied OPTION (e.g. --no-D) -r, --recursive 複製所有下層的資料(遞迴) -R, --relative 使用相對路徑 --no-implied-dirs don't send implied dirs with --relative
-b, --backup 目的端已經存在的檔案在傳輸或刪除前會被備份 (see --suffix & --backup-dir) --backup-dir=DIR DIR設定為備份的資料夾路徑 --suffix=SUFFIX suffix設定備份檔案名稱字尾,預設為 ~
-u, --update skip files that are newer on the receiver --inplace update destination files in-place (SEE MAN PAGE) --append append data onto shorter files -d, --dirs transfer directories without recursing -l, --links 複製所有的連結 -L, --copy-links transform symlink into referent file/dir --copy-unsafe-links only "unsafe" symlinks are transformed --safe-links ignore symlinks that point outside the source tree -k, --copy-dirlinks transform symlink to a dir into referent dir -K, --keep-dirlinks 把連結到資料夾的檔案當成資料夾處理 -H, --hard-links 保留硬式連結 -p, --perms 保留檔案權限 -E, --executability 保留文件的可執行性 -A, --acls 保留 ACLs (implies --perms) -X, --xattrs preserve extended attributes (implies --perms) --chmod=CHMOD 改變目的地的權限 -o, --owner 保留檔按擁有者 (super-user only) -g, --group 保留檔按群組 --devices preserve device files (super-user only) --specials preserve special files -D 保留device資訊 -t, --times 保留時間點 -O, --omit-dir-times 保留時間點 省略目錄 --super receiver attempts super-user activities -S, --sparse 嘗試處理零星檔案,讓這些檔案在目的端佔去較少磁碟空間 -n, --dry-run 不實際執行傳送,只顯示將會有的傳輸動作 -W, --whole-file 複製整個文件 (without rsync algorithm) -x, --one-file-system 不要跨越檔案系統分界(只在一個檔案系統處理) -B, --block-size=SIZE 強制透過rsync程式去比對修復block-sizeforce -e, --rsh=COMMAND 使用指定的 shell --rsync-path=PROGRAM 定義rsync在遠端機器存放資料的路徑 --existing 只比對更新目的端已經存在的檔案 --ignore-existing 忽略目的端已經存在的檔案(也就是不更新) --remove-sent-files sent files/symlinks are removed from sending side --del an alias for --delete-during |
一、 Rsync介紹
rsync是Unix下的一款應用軟體,它能同步更新兩處電腦的檔案與目錄,並適當利用差分編碼以減少資料傳輸。rsync中一項與其他大部份類似程式或協定中所未見的重要特性是映像對每個目標只需要一次傳送。rsync可複製/顯示目錄內容,以及複製檔案,並可選擇性的壓縮以及遞歸複製。在常駐模式(daemon mode)下,rsync預設監聽TCP埠873,以原生rsync傳輸協定或者透過遠端shell如RSH或者SSH伺服檔案。SSH情況下,rsync用戶端執行程式必須同時在本機和遠端機器上安裝。rsync是自由軟體,以GNU通用公共許可證發行。
Rsync在備份的部份
主要是傳送資料差異的部份,因此大多都被使用在差異備份上。除了資料第一次傳輸是整份檔案外,之後都只會傳送資料間異動的部份。
備份相關名詞 :
鏡像備份(mirror backup) : 如同鏡子一般,把資料完整的做一份備份。
增量備份(incremental backup) : 只備份從上次備份後,資料有異動的部份。
二、 Rsync設定
這次在rsync設定部份,直接使用範例的方式會比較快了解。
範例 :
把A主機的網頁資料( /var/www/html ),定期備份到B主機的( /home/backup/)
A主機( Server端 ) IP :192.168.1.222
B主機( Clinet端 ) IP :192.168.1.122
在開始設定之前,有兩個檔案要說明一下:
/etc/rsyncd.conf 為rsync設定檔
/etc/rsyncd.secrets 為rsync 密碼檔
1.1 在B主機上查詢是否有安裝rsync
[root@localhost ~]# rpm -qa | grep 'rsync' rsync-2.6.8-3.1 |
如果沒有安裝的話 請自行補上
[root@localhost ~]# yum -y install rsync |
近期迴響