http://10.1.1.35/ule_basic/ule10.txt

來源:互聯網
上載者:User
--

linux系統的備份與恢複


哪些需要備份:



/bin 存放的是系統可執行檔二進位檔案
/etc 存放的是設定檔
lost+found 分區下才會有這個目錄,存放系統出錯時遺失的片段檔案
/mnt 預設的掛載目錄(mount)
/opt 擴充軟體包
/sbin 系統管理員可執行檔二進位檔案
/tmp 存放臨時檔案的目錄
/boot 存放引導鏡象的目錄
initrd-2.6.18-164.el5.img vmlinuz-2.6.18-164.el5
/home 使用者家目錄
管理的家目錄為/root
/media 預設掛載media的目錄
/proc 虛擬目錄 ,它記錄的是當前系統的各種動態資訊和狀態
/selinux 進階安全性管理
/usr 使用者軟體目錄,使用者裝軟體一般存放在此
/dev 一切裝置都是檔案
/dev/sda scsi 隨身碟
/dev/hdaIDE
/dev/cdrom 光碟片
/dev/fd0軟碟機
/dev/lp印表機
/dev/mouse滑鼠

/lib系統使用的函數庫目錄,程式運行過程中,會調用一些這裡的庫檔案
/var 主要存放執行過程中經常變化的檔案,比如說:日誌,郵件
/var/lib 程式執行過程中,使用的資料檔案放置的目錄:比如:rpm包的資料庫, 的locate尋找的資料庫等
/var/log 系統日誌和各種服務日誌存放的目錄
/var/run 一般用來存放程式啟動並執行pid
/var/spool/mail每個使用者收郵件的目錄


系統本身:

/etc/ --下面有/etc/passwd,/etc/fstab,/etc/initab等等重要的系統設定檔和服務組態檔
/root,/home/使用者名稱 --各個使用者的家目錄,存放各個使用者的檔案
/var/spool/mail,/var/log/messages --郵件,系統日誌資訊
/usr/local,/opt/,/usr/src --使用者安裝的軟體,擴充軟體包,軟體包源碼
/bin/,/sbin/--使用者和管理的可執行命令

服務相關:
與伺服器跑的服務相關的資料要備

不需要備的:/tmp,/mnt,/proc,/dev



備份的介質:
磁碟片:/dev/fd0
光碟片:/dev/cdrom
硬碟:/dev/hda(b,c,...) IDE/dev/sda(b,c,...) SCSI,SATA,USB
磁帶機: /dev/ht0 IDE /dev/st0 SCSI
usb介面的外接裝置

備份的種類:
全備--也可以稱為鏡像備份
增量差異備份--只備份變化的
累計增量差異備份 --累計一段時間的變化資料



linux下備份的工具

cp tar
scp rsync
dump/restore rdump
dd
cpio


tar
實現系統全備:
tar cjvf --exclude=/proc --exclude=/tmp --exclude=/mnt --exlude=/media --exlude=/misc --exclude=/dev --exclude=/backup /backup/fullbackup.tar.bz2 /


tar -N參數(瞭解)

tar -N '2010-05-09' -cvjf /backup/newer.tar.bz2 /test/test/
--備份比2010-05-09新的檔案,包括20100509這天的



tar打包備份,並按時間命令
tar cvjf /backup/`date +%Y-%m-%d`.tar.bz2 /home/--注意`符號(執行符號)是tab鍵上面的那個鍵


遠程備份

scp --遠程備份目錄時,記得加-r參數
要實現用指令碼自動scp的遠程備份,注意配ssh等效性


rsync remote sync 遠程同步 比wget要好

wget http://127.0.0.1/ule07.txt--直接接url uniform resouce locate(統一資源定位)

curl -I

rsync 特點:

1,可以鏡像儲存整個分類樹和檔案系統
2,容易做到儲存原有的許可權,時間,軟永久連結
3,傳輸效率高,使用同步演算法,只比較變化的
4,支援匿名傳輸,方便網站鏡像

軟體包:rsync.i386


普通應用:

rsync -av /home /backup --本機上的同步,把/home目錄下的內容同步到/backup目錄下

rsync -av /home/ 10.1.1.218:/backup--把本地的/home目錄內容,同步到遠端218的/backup目錄下

rsync -av 10.1.1.218:/backup/ /backup/--把遠端218的/backup目錄下的內容同步到本地的/backup目錄

rsync -avlR /backup/ -e ssh 10.1.1.218:/backup/--加上-e ssh參數那麼就經過ssh加密傳輸


rsync 參數介紹
-v verbo
-a 歸檔模式,遞迴的方式傳輸檔案,並保持檔案的屬性
-l 保留軟連結
-R保留相對路徑
-H 保留永久連結
-p ,-o,-g,-A 分別保留許可權,屬主,屬組,acl等 ,但如果加了-a,這些就都包括了



rsync服務
/etc/xinetd.d/rsync --服務啟動指令碼

設定檔: /etc/rsyncd.conf--預設不存在,需要手動建立
man rsyncd.conf --協助



伺服器端的配置:
1,第一步:
vim /etc/rsyncd.conf

uid=root--執行同步時的身份,注意檔案是否有許可權去操作
gid=root
max connections =4--最大串連數
syslog facility= local5--指定日誌產生到local5
pid file =/var/run/rsyncd.pid--pid檔案

[backup]--定義一個讓用戶端能同步的名稱
path=/backup--實際讓用戶端能同步的路徑

2,第二步:
vim /etc/xinetd.d/rsync --修改服務啟動指令碼

service rsync
{
disable = no--yes改為no 開啟rsync服務功能
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}


第三步:
/etc/init.d/xinetd restart--重啟服務

netstat -ntlup |grep 873--服務端就會有873的連接埠在監聽了
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 4080/xinetd




用戶端的操作:
[root@s214 ~]# rsync -avlR 10.1.1.35::backup /backup/--把伺服器端10.1.1.35的backup(注意這個backup是/etc/rsyncd.conf裡[backup]裡的欄位,這是對應的) 是同步到用戶端本地的/backup目錄




例二:
rsync服務加上讓普通使用者能同步的驗證功能
vim /etc/rsyncd.conf

uid=root
gid=root
max connections =4
syslog facility= local5
pid file =/var/run/rsyncd.pid

[backup]
path=/backup
auth users= a,b--能使用rsyncd服務的普通使用者名稱,注意要系統存在
secrets file =/etc/rsyncd.passwd--指定a,b使用者的密碼檔案位置


vim /etc/rsyncd.passwd--把a,b使用者的密碼寫在/etc/rsyncd.passwd裡
a:123
b:123456

chmod 600 /etc/rsyncd.passwd --注意許可權改為600,只root使用者能讀能寫


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


dump備份
restore 恢複

dump的特點:
1,只能針對整個分區
2,能夠支援絕大部分檔案類型,包括裝置檔案,也能保留原屬性
3,支援鏡像備份和增量備份
4,備份時支援基本壓縮

備份層級:
通過備份層級來支援增量和鏡像備份
0-9層級,0代表的是全備(鏡像備份),後面的數字代表遞增的增量備份


周期 1234567
層級0123456



備份方法:
dump -0u /dev/sda13 -f /backup/sda13_0_full.dump--/dev/sda13磁碟的0層級的全備

touch dump1--touch一個檔案,與先前有差異
dump -1u /dev/sda13 -f /backup/sda13_1_added.dump--1層級備份,也就是將會只備份差異的

touch dump2
dump -2u /dev/sda13 -f /backup/sda13_2_added.dump

touch dump3
dump -3u /dev/sda13 -f /backup/sda13_3_added.dump

touch dump4
dump -4u /dev/sda13 -f /backup/sda13_4_added.dump


[root@li quota]# ll /backup/
總計 120820
-rw-r--r-- 1 root root 123084800 05-09 14:04 sda13_0_full.dump
-rw-r--r-- 1 root root 122880 05-09 14:06 sda13_1_added.dump
-rw-r--r-- 1 root root 122880 05-09 14:07 sda13_2_added.dump
-rw-r--r-- 1 root root 122880 05-09 14:07 sda13_3_added.dump
-rw-r--r-- 1 root root 122880 05-09 14:07 sda13_4_added.dump


restore -t -f sda13_4_added.dump --查看備份組裡備份的檔案用-t參數

恢複restore
1, 因為整個分區崩潰,需要恢複,那麼在這裡最好重新格式化一下這個分區,再重新掛載
2,開始restore恢複

cd /復原路徑 --先cd到要恢複的路徑,再一級一級恢複,不能跳級

restore -r -f /backup/sda13_0_full.dump --先恢複全備,-r參數就是重建

restore -r -f /backup/sda13_1_added.dump

restore -r -f /backup/sda13_2_added.dump

restore -r -f /backup/sda13_3_added.dump

restore -r -f /backup/sda13_4_added.dump

針對單一檔案的恢複

直接從備份中提取出檔案:

restore -x -f /backup/sda13_0_full.dump /a1--直接提取出a1檔案,用-x參數

You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume # (none if no more volumes): 1
set owner/mode for '.'? [yn] y


互動性的提取出檔案:

[root@li quota]# restore -i -f /backup/sda13_0_full.dump --互動性用-i參數
restore > ls
.:
a1 a4 aa2 b1 lost+found/
a2 a5 aquota.group b2
a3 aa1 aquota.user bb1

restore > add a2
restore > add a3
restore > add a4--把備份組中的a2,a3,a4加到提取列表,如果是目錄的話使用 add 目錄名/*

restore > ls--再次查看備份組會看到加入到提取列表檔案被加了標記
.:
a1 *a4 aa2 b1 lost+found/
*a2 a5 aquota.group b2
*a3 aa1 aquota.user bb1

restore > extract--這個命令提取出來
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume # (none if no more volumes): 1
set owner/mode for '.'? [yn] n
restore > quit--退出



rdumpremote dump 遠程dump

先配ssh等效性

RSH=/usr/bin/ssh rdump -0u /dev/sda13 -f 10.1.1.218:/tmp/sda13_0_full.dump
--把本地的/dev/sda13的資料遠程dump到218的/tmp目錄,遠程dump要受網路的影響





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


dd 指定大小地拷貝一個檔案,並在拷貝的同時可以進行一些轉換

1,備份mbr
dd if=/dev/sda of=/backup/mbr.backup bs=1 count=512
恢複:dd if=/backup/mbr.backup of=/dev/sda
2,備份整個硬碟
dd if=/dev/sda of=/dev/sdb --把/dev/sda的資料備份到/dev/sdb
恢複:dd if=/dev/sdb of=/dev/sda
dd if=/dev/sda of=/backup/full.backup --把/dev/sda的資料備份成一個檔案
恢複:dd if=/backup/full.backup of=/dev/sda
3,備份磁碟片
dd if=/dev/fd0 of=/backup/fd0.backup bs=1 count=1440
恢複:dd if=/backup/fd0.backup of=/dev/fd0
4,從光碟片拷貝iso鏡像
dd if=/dev/cdrom of=/xxx.iso
5,從記憶體裡拷貝資料到磁碟
dd if=/dev/mem of=/backup/mem.bin
特殊應用:
6,銷毀磁碟資料
dd if=/dev/urandom of=/dev/sda --隨機數填充磁碟
7,修複硬碟,當硬碟長時間不使用
dd if=/dev/sda of=/dev/sda
8,raw裝置(裸裝置)或者lvm資料移轉等



-------------------------------------------------------
cpio能備份任何類型檔案(瞭解)

一般使用管道和別的命令配合(find)


find /quota/ |cpio -ov > /backup/quota.cpio--備份

cpio -iv < /backup/quota.cpio --恢複

-o 備份
-i 恢複
-v 顯示










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

模組管理

/lib/modules/`uname -r`/kernel

[root@li /]# ls /lib/modules/2.6.18-164.el5/kernel/
arch/ crypto/ drivers/ fs/ lib/ net/ sound/
架構平台 加密有關 驅動有關 檔案系統 庫 網路 聲音



lsmod 查看裝載模組列表
modinfo 查看模組資訊 modinfo 8139too
rmmod刪除正在裝載的模組 rmmod 8139too


insmod /lib/modules/2.6.18-164.el5/kernel/drivers/net/8139too.ko --這個要寫路徑
modprobe 8139too--這個只要寫模組名就可以了



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

--核心編譯

核心的功能定製

www.kernel.org



10.1.1.35:/share/soft/kernel/linux-2.6.25.tar.bz2

核心編譯要考慮幾點:
自己定製的核心運行更快,具有更少的代碼
把不需要的功能編譯進核心可能會有受到漏洞被利用的風險
將某種功能編譯成模組方式比直接編譯進核心速度要慢


tar xvf /share/soft/kernel/linux-2.6.25.tar.bz2 -C /usr/src/

cd /usr/src/linux-2.6.25/


編譯核心的步驟:
1,make mrproper --消除當前核心源碼,使之乾淨,(和make clean相似)
2,make config--基於文本的傳統的配置介面,不推薦使用
make menuconfig--基於ncurses-devel庫的一種文本選單方式(要裝ncurses-devel)
make oldconfig--如果只想在原來的核心配置基礎上修改的話,用此選項
make xconfig --基於x windows的圖形配置介面,基於qt的(要裝avahi-qt3-devel)

* 代表編入核心
M 代表編成模組
空 代表不編入核心


有三種括弧:
方括弧:要麼是編進,要麼是不編
角括弧:三種選擇,編進,不編,編成模組
圓括弧: 多選一


3,make
4,make modules_install --把編譯後的模組複製到/lib/modules/核心新版本/ 以後就可以用modprobe insmod來裝載使用
5,make install --拷貝vmlinuz,initrd 到/boot/下 ,並自動修改grub


















聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.