Tips n Trik Mirroring Repo (3)
July 23rd, 2008 by wildanWah, akhirnya selesai juga ujian susulan :). Nah sekarang saya akan melanjutkan posting terdahulu yang ini dan inu.. kali ini saya akan memberi contoh untuk melakukan mirroring terhadap repository openSUSE 10.3 (menggunakan wget) dan 11.0 (menggunakan rsync). untuk distro lainnya sama saja, tidak ada yang berbeda.. mungkin hanya struktur direktorinya yang harus kita perhatikan.
Oke, pertama-tama openSUSE 10.3, kali ini kita mencoba menggunakan mirror kambing sebagai sumber.
- Lihat lokasidirektori di server, saya singkat ROOT-nya dengan tanda “~” untuk mempersingkat penulisan
tempatnya adalah : “http://kambing.ui.edu/opensuse/distribution/10.3/” - Lihat struktur direktorinya, ini berguna untuk kita agar kita bisa mengatur agar wget tidak melakukan mirror terhadap direktori yang tidak kita mau (misalkan direktori untuk arsitektur 64bit (x86_64)
~/repo/oss
~/repo/non-oss
untuk mempersingkat, saya akan memberikan contoh untuk yang oss ya..
ARCHIVES.gz
autorun.inf
boot
ChangeLog
content
content.asc
content.key
control.xml
directory.yast
docu
dosutils
EULA.txt
gpg-pubkey-0dfb3188-41ed929b.asc
gpg-pubkey-307e3d54-44201d5d.asc
gpg-pubkey-3d25d3d9-36e12d04.asc
gpg-pubkey-7e2e3b05-44748aba.asc
gpg-pubkey-9c800aca-40d8063e.asc
gpg-pubkey-a1912208-446a0899.asc
GPLv2.txt
GPLv3.txt
INDEX.gz
ISERIES64
license.tar.gz
ls-lR.gz
media.1
openSUSE10_3_LOCAL.exe
openSUSE10_3_NET.exe
PS3
pubring.gpg
README
README.DOS
suse
suseboot
SuSEgo.ico
yang saya buat bold berarti direktori, nah sekarang kita akan melihat isi dari direktori “suse”, disana kita akan menemukan direktori-direktori sbb:
i586
i686
noarch
repodata
setup
x86_64
Dari data diatas, misalkan direktori yang tidak ingin kita mirror adalah direktori “ppc64” dan “x86_64“ - Buat direktori untuk menampung hasil mirroring
- mkdir mirror_openSUSE10.3
- cd mirror_openSUSE10.3 - Nah, sekarang kita tinggal menggunakan wget, untuk itu ada beberapa opsi yang ingin saya jelaskan (yang sering saya gunakan), agar pembaca benar-benar mengerti, bukan asal ikut..
[-r] rekursif, melakukan pembacaan ke-seluruh sub-direktori
[-no-host-directories] tidak mengikutkan nama host sumber mirroring, misalkan kita melakukan mirror dari kambing.ui.edu, maka hasil mirroring tersebut akan menghasilkan sebuah direktori bernama “kambing.ui.edu”, kemudian isinya adalah direktori-direktori didalamnya, nah dengan opsi ini maka yang dihasilkan adalah langsung direktori-direkktori yang ada didalam “kambing.ui.edu”
[--no-parent] tidak mengikutkan direktori-direktori yang ada diatas direktori target, misalkan kita akan me-mirror direktori “opensuse” yang alamatnya berada pada “http://kambing.ui.edu/opensuse”, maka secara default wget akan mendownload juga semua direktrori yang ada dibawah “http://kambing.ui.edu“, misalkan “http://kambing.ui.edu/pclinuxos“, “http://kambing.ui.edu/debian/“, dst.
Oke, saya rasa option-option itu sudah cukup untuk memulai mirroring..
Kita akan melakukan mirroring terhadap direktori “~/repo/oss”, nah dalam hal ini kita membutuhkan opsi [-r], [--no-parent], dan [-no-host-directories], tapi ada masalah, perhatikan isi dari “~/repo/oss”, disana ada beberapa file(yang sudah pasti ingin kita ikutkan) dan beberapa folder (yang beberapa isinya tidak ingin kita ikutkan), nah maka dari itu kita harus melakukan wget dalam beberapa langkah alias tidak sekali langsung jadi, bahasa inggrisnya “not once directly be”, berikut langkah-langkahnya :- mirror semua isi dari “~/repo/oss”, tapi tidak masuk lebih dalam, nah untuk itu kita butuh 1 opsi tambahan yaitu [--level], yang bisa kita gunakan untuk mengatur kedalaman prosess mirroring yang menggunakan opsi [-r], untuk direktori “~/repo/oss” kita set kedalamannya (level) adalah 1, jadi perintahnya :wget --no-host-directories --no-parent --level 1 http://kambing.ui.edu/opensuse/distribution/10.3/repo/oss
Nah, sampai dengan lagkah diatas kita sudah mendapatkan hasil mirroring untuk direktori “~/repo/oss”, selanjutnya kita akan melakukan untuk direktori “~/repo/oss/suse/”, tapi ada masalah lagi, disana ada direktori yang tidak kita inginkan (misalkan x86_64), maka kita harus melakukan mirroring direktori lainnya secara manual (satu per satu):
wget –no-host-directories –no-parent –level 1 http://kambing.ui.edu/opensuse/distribution/10.3/repo/oss/suse/i586
wget –no-host-directories –no-parent –level 1 http://kambing.ui.edu/opensuse/distribution/10.3/repo/oss/suse/i686
dst..
Nah, sekarang kita akan menggunakan rsync untuk mirroring repository openSUSE 11.0.. pertama-tama saya akan menjelaskan sedikit tentang cara kerja rsync.. rsync tidak bekerja seperti wget, rsync adalah sebuah program client-server yang bsa kita gunakan untuk melakukan mirroring, jadi untuk melakukan mirroring dengan menggunakan rsync ke sebuah server tertentu, maka server itu harusmenyediakan layanan rsync, kali ini server yang akan kita pakai adalah packman.mirrors.skynet.be.
Pertama-tama, kita akan belajar bagaimana cara sederhana menggunakan rsync:
# rsync packman.mirrors.skynet.be::
welcome to rsync.skynet.be
Contact: Cedric Gavage <rsync@skynet.be>
http://ftp.skynet.be - http://www.belgacom.be
This server is located in Brussels, Belgium, Earth
debian Debian Mirror
debian-non-us Debian non-us Mirror
debian-security Debian (security) Mirror
debian-ipv6 Debian (ipv6) Mirror
debian-dotdeb Debian DotDeb Mirror
debian-volatile Debian Volatile Mirror
backports.org Debian Backports.org Mirror
opensuse OpenSUSE Mirror
software-opensuse Software OpenSUSE Mirror
suser-guru Guru Mirror
packman Packman Mirror
linux-uak0:/home/wildan/Desktop #
Nah, itu adalah cara untuk mengetahui apa-apa yang disediakan oleh rsync server, untuk selanjutnya saya tidak akan menjelaskan tentang struktur direktori lagi, tetapi langsung melakukan mirroring.. oke selanjutnya adalah opsi-opsi standar yang biasa digunakan untuk mirroring :
[-av] artinya adalah kita melakukan pengcopyan secara menyeluruh (a=archieve) dan menampilkan hasilnya (v=verbose)
[--delete-after] artinya adalah apabila ada paket yang lebih baru, maka paket yang lama akan dihapus setelah paket yang baru selesai didownload.
[exclude-from=nama_file] artinya adalah melakukan pengecualian untuk folder/file yang terdaftar didalam file “nama_file”, dan ketentuannya adalah satu arti setiap baris.
Oke, saya rasa cukup, sekarang kita akan melakukan mirroring dengan rsync
penggunaanya secara umum seperti ini :
rsync -av –delete-after host_server::nama_share direktori_tujuan
sebelum melakukan mirroring, kita perlu mendata direktori apa saja yang tidak ingin kita ikutkan , misalkan:
SRPMS/
ppc/
src/
x86_64
Simpan daftar tersebut ke sebuah file, misalkan “exclude.list”
kemudian kita sudah bisa melakukan mirroring dengan perintah :
rsync -av –delete-after –exclude-from=exclude.list packman.mirrors.skynet.be::packman/suse/11.0/ /tujuan
Nah, sekian dulu posting saya, semoga bermanfaat dan tetap semangat belajar Linux.. be a good people for your country..
(whiledan)
Posted in |
