linux系统需要备份吗,准备好了吗?请备份你的Linux系统
一、我們需要備份什么?
我的 Linux 系統是基于 Redhat 的Redhat Linux 9.0,同時配置了諸如 MySQL、PHP、Apache 等基礎服務,同時又配有 Awstats、MRTG、MT 等應用服務程序,因此,我們需要備份的除了系統本身的重要文件以外,還需要備份數據庫、log文件和統計數據文件等。當然另外一項必不可少的就是編譯各項服務時的 ./configure 參數,這里就不贅述了。
二、制定備份文件列表。
這個步驟就是歸納一下需要備份的目錄列表。以下我就依照我所安裝的各項服務作了一個簡單的list。 一些文件的地址是以我的服務器為標準(以"/"開頭),一些則以相對目錄來描述(以"./"開頭)。
系統:
/etc /usr/local/etc
包含所有核心配置文件。這其中包括網絡配置、系統名稱、防火墻規則、用戶、組,以及其他全局系統項。
/var
包含系統守護進程(服務)所使用的信息,包括 DNS 配置、DHCP 租期、郵件緩沖文件、HTTP 服務器文件、db2 實例配置,等等。
/home
包含所有用戶的默認用戶主目錄。這包括他們的個人設置、已下載的文件和用戶不希望失去的其他信息。
/root
是根(root)用戶的主目錄。
/opt
是安裝許多非系統文件的地方。IBM 軟件就安裝在這里。OpenOffice、JDK 和其他軟件在默認情況下也安裝在這里。
系統中不需要備份的目錄:
/proc
應該永遠不要備份這個目錄。它不是一個真實的文件系統,而是運行內核和環境的虛擬化視圖。它包括諸如 /proc/kcore 這樣的文件,這個文件是整個運行內存的虛擬視圖。備份這些文件只是在浪費資源。
/dev
包含硬件設備的文件表示。如果計劃還原到一個空白的系統,那就可以備份 /dev。然而,如果計劃還原到一個已安裝的 Linux 系統,那么備份 /dev 是沒有必要的。
更多關于目錄的解釋,請查看 Filesystem Hierarchy Standard 和 Red Hat Linux Overview of File System Hierarchy Standard (FHS)
MySQL:
/usr/local/mysql
同時要注意版本的保留,在恢復的時候使用相同的版本(或者相同系列的版本)會減少更多不必要的麻煩,例如 “/usr
/local/mysql-standard-4.1.7-pc-linux-i686”。
/etc/my.cnf
MySQL 的配置文件。
Apache:
/usr/local/apache2/logs
Apache 的 log 文件。這里建議使用 cronolog 來 rotate Apache 的巨大 log??梢詤⒖嘉业?cronolog 雜記
/usr/local/apache2/conf
Apache 的配置文件,例如: httpd.conf。還是建議在修改此文本的時候使用“#”號 comment 修改的內容,然后添加需要修改的內容。
PHP:
/usr/local/lib/php.ini
個人覺得這個就夠了。如果你設定了 php 的 error log 文件,當然那個也是需要的。
Movable Type:
./MT-3.0D-full-en_ususr/ 和你的 weblog 目錄
一般來說 blog 不會太大,不介意的話就整個備份一下。當然最重要的是 ./MT-3.0D-full-en_ususr/db/ 文件夾,里面有所有的數據(如果你沒有用 MySQL 作為 MT 的數據存儲格式的話)。
Awstats:
/etc/awstats/
Awstats 的配置文件。諸如:awstats.blog.conf
/var/lib/awstats/
Awstats 的分析留檔文件。 諸如:awstats082004.blog.txt
MRTG:
MRTG 的輸出文件夾。內有圖片和諸如 12.34.56.78_12.34.56.78.log 的log文件。
三、使用 tar 和 crontab 等簡單工具備份。
以下是使用 tar 的腳本,去掉了多余的說明部分。 您也可以點擊這里下載并修改以適合自己的系統。在腳本中我盡量用更多的方法來進行備份。在實際應用中可以將步驟更加簡化。更多關于 tar 的參數請看 man tar#!/bin/sh
# Date format: 20040626
DATE=`date -d yesterday +%Y%m%d`
# MySQL version & directory
MYSQL_VERSION="4.x.x"
MYSQL_DIR="/usr/local/mysql/data"
# MT Blog directory
MTBLOG_DIR="/path-to-mt/db/"
# Backup directory & Backup Filelist
BACKUP_DIR="/path-to-backup/backupfile"
BACKUP_FILELIST="/path-to-backup/filelist"
# Backup MySQL
printf "Backup MySQL data directory, please wait...\n"
tar -zpcvPf $BACKUP_DIR/mysql-standard-$MYSQL_VERSION-data-$DATE.tgz $MYSQL_DIR | grep "tar:"
printf "Done! The new backup file is: $BACKUP_DIR/mysql-standard-$MYSQL_VERSION-data-$DATE.tgz\n\n"
# Backup MT Blog
printf "Backuping the MT3.0 Weblog data directory, please wait...\n"
tar -zpcvPf $BACKUP_DIR/MT-db-$DATE.tgz $MTBLOG_DIR | grep "tar:"
printf "Done! The new backup file is: $BACKUP_DIR/MT-db-$DATE.tgz\n"這里引用了『Linux 備份與恢復速成指南』中的一個小技巧,將文件列表寫入一個文件進行操作。查看我的Filelist。
以下是一個文件列表的例子:/etc
/var
/home
/usr/local
/opt (有時會是空目錄)以下解釋引自『Linux 備份與恢復速成指南』:
請注意 tar -T(或 files-from)命令不能接受通配符。文件必須明確地列出。上面的例子展示了一種單獨地引用文件的方法。您還可以執行腳本來搜索系統,然后建立一個列表。下面就是這樣一個腳本的例子:#!/bin/sh
cat MyFiles > TempList
find /usr/share -iname *.png >> TempList
find /tmp -iname *.iso >> TempList
tar -cpzMf /path-to-backup/backupfile -T TempList上面的腳本首先將 MyFiles 中的所有現有文件列表復制到 TempList。然后它執行兩個 find 命令來搜索文件系統中匹配某個模式的文件,并將它們附加到 TempList。第一次是搜索 /usr/share 目錄樹中以 .png 結尾的所有文件。第二次是搜索 /tmp 目錄樹中以 .iso 結尾的所有文件。在建立好列表之后,tar 然后在文件設備 /dev/st0 (第一個 SCSI 磁帶設備)上創建 一個新的歸檔文件,該文件使用 gzip 格式來壓縮,并保留所有文件權限。該歸檔文件將跨越多個卷。要歸檔的文件的名稱將從 TempList 文件中提取。
總結
以上是生活随笔為你收集整理的linux系统需要备份吗,准备好了吗?请备份你的Linux系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言用队列stl加头文件,C++ ST
- 下一篇: xshell vim 不能粘贴_linu