Linux遠程控制
Linux備份策略
系統故障排除
#################################################
一、Linux遠程控制
OpenSSH,Secure SHell
服務端程序:sshd
服務配置:/etc/ssh/sshd_config
Port 22 【SSH協議的標準端口】
UseDNS no 【不使用DNS解析】
Linux客戶端的SSH程序
遠程登錄:
ssh用戶名@服務器地址
ssh -X 用戶名@服務器地址
**客戶端得運行在桌面下,手動加載圖形程序)
遠程安全複製:
scp -r 本地文件或目錄路徑 用戶名@服務器地址:遠程路徑
遠程安全FTP:sftp 用戶名@服務器地址
Windows客戶端的SSH程序
SecureCRT
Putty(....)
F-Secure
WinSCP
支持X圖形
screen 屏幕共享
二、Linux備份策略
基本備份方式
cp(選項 -p、製作鏡像) 【選項 -p 保持權限等屬性】
tar 完全備份
--newer-mtime yyyy-mm-dd:備份..後修改過的文檔
-p:小寫的-p,保留原有的屬性/權限
**執行“stat 文件”可查看指定文件的詳細時間(訪問、修改、改變)屬性
設備克隆工具
dd if=輸入設備 of=輸出設備
dd if=輸入設備 of=輸出設備 bs=塊大小 count=塊數量
**if --- Input File、of --- Output File
**bs --- Block Size
三、系統故障排除
故障修復
1. 遺忘root密碼
1)重啓,在GRUB菜單按e鍵,
2)修改kernel行(添加single,或字母s、數字1),回車保存
3)按 b 鍵啓動,免密碼驗證進系統
4)重設 root 的口令
2. EXT分區超級塊故障
1)模擬對/dev/sdb1分區的破壞操作
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
2)重新掛載/重啓時報錯
[root@svr5 ~]# mount -o remount /dev/sdb1 /mnt
.. .. mount: you must specify thefilesystem type
3)進修復模式執行fsck修復
fsck -y -t ext3 /dev/sdb1
4)重新掛載及訪問分區
3. 檢測磁盤壞道
badblocks [選項]... 磁盤或分區
**選項 -s 顯示進度,-v 輸出詳細信息
**比如 badblocks -sv /dev/sdb
4. MBR扇區破壞
1)備份MBR扇區,存放到其他磁盤(切記!!!!)
** 假設將要備份磁盤/dev/sda(Linux系統所在盤)的MBR記錄
** 另一塊磁盤上的分區/dev/sdb1已掛載到/mnt/sdb1/
dd if=/dev/sda of=/mnt/sdb1/sda.mbr bs=512 count=1
2)破壞MBR扇區數據,重啓後無法進系統
dd if=/dev/zero of=/dev/sda bs=512 count=1
3)RHEL5光盤引導,進入救援模式(獲得臨時Shell)
boot: linux rescue
4)從備份文件中恢復MBR扇區
sh-3.2# mkdir /tdir 【創建臨時掛載點】
sh-3.2# mount /dev/sdb1 /tdir 【掛載存放有MBR備份的分區】
sh-3.2# dd if=/tdir/sda.mbr of=/dev/sda 【回寫MBR備份】
5)重啓後,MBR恢復正常
sh-3.2# exit 【退出修復環境,自動重啓】
5. GRUB引導故障
1)先備份,再移除/boot/grub/grub.conf文件
cp /boot/grub/grub.conf /boot/grub/grub.conf.bak
2)重啓後無法進系統
會停滯在“grub>”提示符狀態
3)在 grub> 提示符後,手動執行引導
grub> root (hd0,0) 【進/boot分區】
grub> kernel /vmlinuz-2.6.18-348.el5ro root=LABEL=/ 【起內核、找根分區】
grub> initrd/initrd-2.6.18-348.el5.img 【起initrd】
grub> boot 【引導Linux系統】
** 不足:操作比較麻煩,最好先知道內核、initrd鏡像、根分區的位置
** 若手動引導失敗,可進RHEL5光盤救援模式,再做恢復操作(參考4、5步)
4)進入系統後,重建grub.conf 配置文件
cp /boot/grub/grub.conf.bak /boot/grub/grub.conf
reboot
5)【補註】若MBR中的引導器損壞,則grub>將不可用
** 先進RHEL5光盤的rescue模式
** 待修復的Linux系統會自動掛載到/mnt/sysp_w_picpath/ 下
sh-3.2# chroot /mnt/sysp_w_picpath 【切換至待修復系統】
sh-3.2# grub-install /dev/sda 【重裝GRUB引導器】
sh-3.2# exit 【退出chroot環境】
sh-3.2# exit 【退出修復環境,自動重啓】
6. 系統文件丟失(/etc/inittab)
故障現象:
啓動提示 “... INIT: No inittabfile found”
系統停滯,無法完成初始化
解決思路:
進入急救模式,從備份文件中恢復
或者,在急救模式中重裝initscripts 軟件包
sh-3.2#chroot /mnt/sysp_w_picpath
sh-3.2#mount /dev/hdc /mnt //掛載RHEL5光盤設備
sh-3.2#rpm -ivh --force /mnt/Server/initscripts-*.rpm
#################################################
############################ ###################
## 備選擴展: ## ##
############################ ###################
7. 誤刪除恢復 rm -rf
1)注意不能再寫入—— umount
2)準備一個恢復工具,比如 extundelete
查看列表:extundelete --inode 2 /dev/sda1
恢復所有:extundelete --restore-all /dev/sda1
恢復指定文件:extundelete --restore-file 文件路徑 /dev/sda1
恢復指定目錄:extundelete --restore-directorie 目錄路徑 /dev/sda1
** extundelete --help 獲取幫助
8. i節點耗盡驗證(儘管有磁盤空間,但已無法寫入文件)
建一個小分區(40MB),
格式化:mkfs -text3 /dev/sdb10
|-->創建超級塊(superblock)—— inode數量、blocks數量
查看超級塊:tune2fs-l /dev/sdb10
快速消耗i節點資源:
mkdir /mnt/testdir
mount /dev/sdb10 /mnt/testdir
for i in $(seq 15000) ; do touch "/mnt/testdir/file$i.txt" ; done
|--> 設一個超過可用i節點數量的數值
**seq命令用來生成一個數字序列,for是一個循環語句(Shell課程會詳細介紹)
**inode,i節點—— 檔案編號,每一個文件都需要
**文件名 --> i節點 --> 文件內容
9. 軟鏈接、硬鏈接
ln-s 建軟鏈接:
鏈接文件 --> 被鏈接文件 -->i節點 -->文件內容
** 一旦刪除“被鏈接文件”,剩下的“鏈接文件”將不可用
ln建硬鏈接:
鏈接文件 --> i節點 -->文件內容
被鏈接文件 --> i節點 -->文件內容
** 即使刪除“被鏈接文件”,剩下的“鏈接文件”仍然可用
主要特點:
** 軟鏈接可以跨EXT文件系統(源和目標可在不同EXT分區)
** 硬鏈接不能跨EXT文件系統(源和目標必須在同一個EXT分區)
** 不能爲目錄建立硬鏈接,而軟鏈接是可以的
10. logwatch日誌報告
logwatch--range all --print | less
**--range可以指定爲 all、yesterday、today
**未指定 --range 選項時,缺省只列出前一天(yesterday)的日誌報告
11. 提取rpm包內的個別文件
1)查看文件清單
rpm -qpl softname-1.0.rpm
2)確認相對路徑
rpm2cpio softname-1.0.rpm | cpio-t
3)提取個別文件
rpm2cpio softname-1.0.rpm | cpio -idv 文件相對路徑
4)提取所有文件
rpm2cpio softname-1.0.rpm | cpio -idv
選項說明:
-t,--list:查看可用的文件列表
-i,--extract:提取文件
-d,--make-directories:創建目錄結構
-v,--verbose:詳細輸出
12. wget下載整個網站:
wget -crpk -np http://www.lfs.org.cn/book/index.html
選項說明:
-r,--recursive:遞歸下載所有鏈接
-p,--page-requisites:包括頁面顯示必需的目標
-k,--convert-links:下載完成後轉換鏈接目標以便本地瀏覽
-np,--noparent:只向下遞歸,防止下載父級鏈接或外部鏈接等網頁對象
-c,--continue:支持斷點續傳
-t,--tries=:指定重試次數
**LFS項目,Linux From Scratch
**—— 從零開始,全手工打造自己的Linux系統
#################################################