HOWTO backup files, folders, disk drivers, full system

Линүкс системтэй ажилдаг хүмүүс, админ-уудад мэдэж байвал зохих нэг зүйл бол мэдээлэл (файл, гэх мэт ) нөөцлөх, нөөцөлсөн архив файлаа буцааж сэргээх үйлдэл гэж боддог юм. Өнөөдөр энэ талаар хийсэн тэмдэглэлүүдээ харж байгаад нэгтгээд жаахан бичий. Мэдээж өөрийн гараар хийж үзсэн, байнга хэрэглэдгээсээ л бичнэ. Эхлээд доорх хэдэн команд, хэрэгслүүдийг нэг google -ээд сонирхоодохоорой.

- Command-line based:
dd
dump
cpio
tar
rsync
cp
- Text-based:
Ghost for Linux (g4l)
Amanda
Taper
- GUI-based:
KDat
PerfectBackup

Алийг нь сонгох вэ? гэдэгийн хувьд хэрэглэгчийн л үзэмж гэдэг нь мэдэх хэрэг гэж бодож байна. Тэгэхдээ авсаархан хэрэгсэл хайж байгаа бол command-line based хэрэгсэлүүд, хэрэглэгчид хялбар ойлгогдохоор, ердийн хэрэглэгчдэд бол GUI-based болон Text-based хэрэгсэлүүд, Сүлжээгээр дамжуулан болон алсаас удирдан нөөцлөх үйлдлийг хийх бол command-line based хэрэгсэлүүд сонгох нь зүгээр болов уу.

Нөөцлөлт хийж болохоор командуудаас ашиглаад нэг жижигхэн shell script бичээд л нөөцлөх үйлдэл хийдэг өөрийн хэрэгсэлтэй ч болох боломжтой. Жишээ нь “cp”, “rsync”, “tar” командууд ашиглаад хамгийн амархан нөөцлөгч тоол хийж үзий. Нөөцлөх үйлдэл хийх командуудийг доорх байдлаар бичиж болно.

# cp -a src dest
(a - параметр нь архивийн горим, "dpR" гэсэн 3 параметрүүдийн хослолтой адилхан.)
# rsync -a src dest
(a - параметр нь архивийн горим, "rlptgoD"гэсэн 7 параметрүүдийн хослолтой адилхан.)
# tar -zcf backup-file.tar.gz src
(z- gunzip, c- TAR файл үүсгэх.)

Одоо бид дээрх командийн аль нэгийг нь shell script болгоод, тэгээд дараа энэ script-ээ CRON-оос цагаар удирдагдаж ажилдаг болгоод л байнгын нөөцлөх үйлдэл хийдэг амархаан хэрэгсэлтэй болчихлоо. Энэ script дээрээ “TAR” ашиглаад нөөцлөлт хийсэн файлуудаа архив болгоод тэгээд нөөц файлууд хадгалахаар бэлдсэн диск драйвер рүү хуулах үйлдэл нэмээд л бүүр бүрэн гүйцэд гэхээр нөөцлөгч хэрэгсэлтэй болж байна. Ийм аргаар WEB, MAIL, DATABASE серверүүдийн дата файлуудыг байнга нөөцлөлт хийж болно. Дамаа “rsync”-ийг сонирхоороо. Урд нөөцлөлт хийсэн файл, шинээр нөөцлөлт хийж байгаа файлуудыг харьцуулаад, зөвхөн өөрчлөлт орсон файлуудыг л нөөцлөлт хийнэ, алсаас удирдаад нөөцлөлт хийх боломжтой гэх мэтээр давуу тал ихтэй.

Disk driver-ийг бүхлээр нь, өөрөөр хэлбэл системийг бүхлээр нь нөөцлөлт хийж авах талаар 3 арга бичий гэж бодож байна. 3-уулаа миний гараар шалгагдсан болно.

1. "tar" comand based
2. "dd" command based
3. Ghost for Linux "g4l"

1. "tar" based backup.

Энэ арга бол их энгийн, ердөөсөө Линүкс системийн бух хавтас, файлуудыг "*.tar.gz" файл болгоод л авах арга юм.
Нөөцлөлт хийх дараалал:
- Эхлээд нөөцлөх үйлдэл хийж авах шаардлагагүй хавтаснуудийг тодорхойлох. Жишээ нь системийн файл хадгалдаг хавтас “/proc” (энэ хавтсан дахь файлууд бол систем ажиллаж байхад л үүсдэг, линүкс цөмийн өгөгдлийн бүтцийн файлууд юм), “/mnt”, “/media” (системийн драйверүүд), “/tmp”, за тэгээд нөөцлөх үйлдэл хийж авах шаардлагагүй хавтас бас хэрэггүй байх, гэх мэтээр тодорхойлж авна.
- За тэгээд л “TAR” командаа шаардлагатай параметртэй нь бичээд л, ENTER дарахад нөөцлөх үйлдэл хийнэ дээ. Жишээ нь доорх командийг оруулаад үзээрэй.
# tar -zcvpf /archive/backup-`date'+%d-%B-%Y'`.tar.gz --directory / --exclude=proc --exclude=mnt --exclude=tmp --exclude=archive .

Тайлбар :
---- “-z” – Gunzip файл үүсгэх, “-c” TAR төрлийн архивийн файл үүсгэх, “-p” - Файлуудын шинж чанарыг хадгалж үлдэх, буцааж сэргээх үйлдэл хийхэд тэр хэвээр нь буулгана, “-v” - Үйлдэл хийгдэж буй файл дэлгэцэнд хэвлэгдэх.
---- `date'+%d-%B-%Y'` - систэмийн цагийг хэвлэх командын гаралтийг '%d-%B-%Y' хэлбэрийн формат бүхий гаралттайгаар нөөцлөх үйлдэл-ъ гэсэн тэxт-д нэмээд нөөцлөх үйлдэл архив файлын нэр бэлэн болно.
---- `` - дотор бичсэн линүкс команд ажиллаад үр дүнг текст хэлбэрээр буцаана.
---- “--directory” – TAR үүйлдлийнхамгийн эхлэл хавтсыг зааж өгөх
---- “--exclude” – Нөөцлөлт хийхгүй хавтасыг зааж өгөх
---- “.” тухайн хавтаснs бoх файлыг нөөцлөх үйлдэл хийхийг зааж өгөх

Дээрх үйлдлийг буцааж задлах команд бичвэл:
# tar -zxvpf /archive/backup-20-February-2007.tar.gz

Тайлбар: Энд бидний мэдэхгүй архив файлыг задлах үйлдлийг зааж өгөх “-x” параметр л байна. Нөөцлөлт хийсэн архивийн файл дотроос ямар нэг файл эсвэл хавтас хайх хэрэгтэй бол доорх командыг оруулах ба нөөцлөх үйлдэл хийсэн бүх хавтас, түүн доторх бүх файлууд жагсаагдан хэвлэгдэх ба тэгээд тэндээсээ файл хайна.
# tar -ztvpf /archive/backup-20-February-2007.tar.gz
# tar -ztvpf /archive/backup-20-February-2007.tar.gz | grep -i "search-file"


2. "dd" команд ашиглаж диск драйверыг тэр чигээр нь хуулан авах.

Дэлгэрэнгүй мэдээллийг “man dd” гээд үзээрээ. Энд бид 2 адилхан дискийг нэгнээс нь нөгөөд тэр чигээр нь хуулах үйлдэлд ашиглах болно.

Үйлдлийн дараалал:
- Хуулж авах эх дискийг "primary master" болгоод, хуулагдах дискийг "secondary master" байхаар бодож залгана.
- Компьютерыг асааж, GNOPPIX зэрэг линүкс live CD, DVD -нээс системийг эхлүүлнэ.
- SU эрхээр үйлдлийг хийнэ, команд оруулахад бэлдэнэ
- fdisk -ээр дискнүүдын мэдээллийг харна
# fdisk -l

Жишээ нь бидний тохиолдолд эхний диск "/dev/hda", дараах диск нь "/dev/hdb" гэсэн байдлаар системд танигдсан байг. Мэдээж хуулах, хуулагдах диск мөн эсэхийг дахин дахин сайн шалгаарай. 2 дискээ таниулж (mount /dev/hda /folder) байгаад дахин дахин шалгаарай.
- За хуулж авах, хуулах дискээ тогтоосон бол таниулсан дискээ “umount”-аар системээс устгана.
# umount /dev/hda
# umount /dev/hdb

- "dd" командаар хуулахдаа блокын хэмжээг нь гараар оруулж өгч болдог ба тэр хэмжээ нь том байх тусмаа хурдан хуулна, тиймээс тэр хэмжээг хэдээр тогтоохыг тооцоолохын тулд "fdisk -l"-ээр хатуу дискнийхээ хэмжээг хэдэн байт болохыг харж болно.
# fdisk -l /dev/hda

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Дээрх тохиолдолд хатуу дискний цэвэр хэмжээ “80026361856” байна, за энэ тоонд үлдэгдэлгүй хуваагдахаар тоо 512, 1024, 2048, 4096, ... хэмжээнүүдээс сонгоно. Заримдаа энэ дискний нийт хэмжээ дээрх тоонуудад цэвэр хуваагдахгүй бол хамгийн бага хэмжээ болох 512 -ийг сонгоорой. (Миний хувьд би голдуу 512 -ийг ашиглаж байсан, удаан ч найдвартай гэдэг үүднээс.)

- Нөөцлөлт хийх командаа оруулаад ENTER
# dd bs=4096 if=/dev/hda of=/dev/hdb

bs=BYTES : force ibs=BYTES and obs=BYTES
if=FILE : read from FILE instead of stdin
of=FILE : write to FILE instead of stdout

Тэмдэглэл: Би энэ үйлдлийг яг адилхан 2 хатуу диск ашиглаж байгаа тохиолдолд л хэрэглэж байсан юм, өөр хэмжээтэй хатуу дискний тохиолдолд болно гэж уншиж байсан, хуулж авах диск нь том байх хэрэгтэй нь ойлгомжтой юм. Том хэмжээтэй дискэн дээрээ нөөцлөх үйлдэл хийж авах дискнийхээ хэмжээтэйгээр яг адилхнаар хуваалт “partition” үүсгээд, тэгээд нөөцлөх үйлдэл хийх нь дээрх үйлдэлтэй адилхан. Хуваалт хийхдээ “fdisk”-ийг ашиглаарай.

3. GHOST for Linux (g4l)

Эхлээд энэ аргаар хэрхэн нөөцлөх үйлдэл хийх талаар товчхон бичвэл: Ажиллаж буй сервер, линүкс компьютерийг унтраах шаардлагатай. "g4l" бүхий боот хийдэг CD-нээс нөөцлөх үйлдэл хийх компьютерт дээрээ систем уншуулж ороод, DHCP серверээс IP хаяг авч, тухайн сүлжээн дэх FTP серверт нөөцлөх үйлдэл хийсэн архив файлыг хуулна. DHCP, FTP сервер байх шаардлагатай. Үлгэр шиг л юм болж байна уу, хэ хэ хэ
Жишээ болгоод А компьютерын “/dev/hda” диск драйверыг бүхлээр нь нөөцлөх үйлдэл хийж "my-backup-20070101.gz" гэдэг файл үүсгээд, "192.168.200.1" IP хаяг бүхий FTP серверийн "backup" гэдэг хавтсанд хуулах үйлдлийг авч үзий.

Ажлийн дараалал:

1. Интернетээс “g4l” -ийн ISO image -ийг татаж авна. (Сүүлийн хувилбар нь "g4l-v0.23.iso" гэж байгаа)
Бас баримт бичгийн файлууд ч байгаа, эхлээд баримт бичгийн файлуудыг нь уншаад, google -дээд жаахан мэдээлэл толгойдоо хийж аваараа.
http://sourceforge.net/project/showfiles.php?group_id=119810

2. Татаж авсан "g4l-XXXX.iso" файлаа CD дээр боот хийж болох байдлаар бэлдэнэ.

3. DHCP сервер, файл хуулж болохоор FTP сервер бэлдээд, энэ 3 компьютерээ нэг сүлжээнд холбоно. Мэдээж хоорондоо холбогдох байдлаар “subnet mask” болон бусад сүлжээний тохиргоог хийнэ. Энд хэрэглэх жишээнд дараах байдлаар тохируулы гэж үзий.
- DHCP IP : 192.168.200.10 -192.168.200.20
- FTP server address : 192.168.200.1

4. Бэлдсэн "g4l" бүхий боот хийдэг CD-ээ нөөцлөх үйлдэл хийх компьютерт хийж, системийг шинээр ачаал

5. За тэгээд систем уншиж ороод, IP хайг автоматаар DHCP -ээс хийгдэнэ, тэгээд команд оруулж болохоор дэлгэц нээгдэх болно. Доорх "g4l" командыг параметрүүдтэй нь оруулна.

# ./g4l with arguments ($1, $2, ... )
$1 : FTP серверийн IP хаяг (192.168.200.1)
$2 : Нөөц файлын нэр болон өргөтгөлийн хамт (image.gz)
$3 : FTP серверт хандах бичих эрх бүхий хэрэглэгчийн нэр, нууц үг ('-u user1 -p pass1')
$4 : DHCP (default: enable), нөөцлөлт хийхээр бэлдэж буй компьютерт хэрэглэх IP хаяг DHCP серверээс авахыг зааж өгөх флаг.
$5 : Нөөц файлыг хуулах FTP сервер дээрх хавтасны нэр (default : img)
$6 : Сүлжээнд холбогдох сүлжээний интерфейсийн нэр (default : eth0)
$7 : reboot – Нөөцлөлт дуусаад “reboot” хийх эсэхийг заах флаг (default: not)

Бидний жишээнд бол:
./g4l 192.168.200.1 my-backup-20070101.gz '-u bayar -p pwd' dhcp backup eth0

Тайлбар бараг хэрэггүй гэхээр тодорхой харагдаж байгаа гэж бодож байна. “default” параметрүүд таны оруулахтай адилхан бол оруулаад хэрэггүй.

6. За эндээс эхлээд их амархан болно. Текст цэс бүхий дэлгэц нээгдэх ба тэрэн дээр тохиргооны хэсэгт таны оруулсан параметрууд суугдсан байх болно. Үндсэн цэснээс харж байгаад л таны тоглолт эхлэнэ. Жишээнд "/dev/hda" –ийг нөөцөлж, FTP серверт хуулахаар байгаа тул доорх сонголтуудыг хийнэ.

- RAM Mode (ANY filesystem,every bit, local+ftp)
- Network use (Backup/restore to/from network)
- Backup (Backup drive/partition to FTP server)
- Select from : hda
Ok
(Нөөцлөх үйлдэл эхлэнэ, дуустал нь хүлээ !!! )



7. Дуусав.

http://sourceforge.net/projects/g4l
http://www.howtoforge.com/back_up_restore_harddrives_partitions_with_ghost4linux

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

За дээрх 3 аргыг товчхон бичвэл нэг иймэрхүү юм болж байна. Мэдээж өөрсдөө дэлгэрүүлж судлаад, ажилдаа хэрэглэх нь зүйтэй болов уу. Асуух юм байвал мэдээж мэддэг чаддаг бол хэлж өгөхдөө дуртай байх болно.

1 comment:

tsendeeMTS said...

Би 200G hard дээрх ubuntu-g G4L-ээр backup-лаад буцаагаад өөр нэг 150G hard-тай PC дээр restore хийсиймаа гэтэл "error 18" гэсэн алдаа гараад байнаа. Hard-ний хэмжээнээс болж байгаа болов уу? Таньд ямар нэгэн арга байна уу?