Topologi :
Server utama (192.168.100.3) --------- (192.168.100.1) Server backup
1. Pertama, pastikan kedua buah server sudah terinstall ssh :
rizal@server-utama:~$ sudo apt-get install ssh
rizal@server-backup:~$ sudo apt-get install ssh
2. Kemudian kita harus membuat agar server utama tidak perlu lagi memasukkan password setiap ingin meremote server backup via ssh. Ini untuk membuat rsync dapat melakukan pengiriman file via ssh ke server backup nantinya.
Dari Server Utama eksekusi perintah berikut :
rizal@server-utama:~$ ssh-keygen
Jika diminta memasukkan apapun, jangan diisi apa-apa. Tekan
Enter saja terus sampai selesai.
3. Setelah itu kirimkan file
id_rsa.pub ke Server Backup :
rizal@server-utama:~$ cd
rizal@server-utama:~$ scp .ssh/id_rsa.pub rizal@192.168.100.1:
4. Sekarang pindahlah ke Server Backup, kemudian eksekusi perintah berikut :
rizal@server-backup:~$ cat id_rsa.pub >> ~/.ssh/authorized_keys
Jika muncul error
~/.ssh/authorized_keys: No such file or directory , itu berarti Server Backup kalian belum pernah menggunakan ssh sama sekali sebelumnya. Kalian tinggal membuat direktorinya secara manual :
rizal@server-backup:~$ mkdir ~/.ssh
rizal@server-backup:~$ chmod 700 ~/.ssh
Setelah itu ulangi perintah :
cat id_rsa.pub >> ~/.ssh/authorized_keys . Jika tidak muncul peringatan error lagi, maka berarti sudah berhasil. Lalu jangan lupa restartlah service ssh kalian :
rizal@server-backup:~$ sudo service ssh restart
5. Selanjutnya, kalian perlu membuat direktori tempat menyimpan file-file backupnya :
rizal@server-backup:~$ sudo mkdir /backup
rizal@server-backup:~$ sudo chown rizal:rizal /backup/
6. Pindahlah lagi ke komputer Server Utama. Kemudian cobalah untuk meremote Server Backup, seharusnya kalian tidak akan diminta password lagi sekarang :
rizal@server-utama:~$ ssh rizal@192.168.100.1
Jika sudah exit saja :
rizal@server-backup:~$ exit
rizal@server-utama:~$
7. Sekarang saatnya untuk membuat script untuk membackupnya. Pada kasus ini, saya akan mencoba membackup direktori
/home/rizal/Public/Novel. Direktori ini nantinya akan di kompress dan dimasukkan ke dalam direktori
/home/rizal/Public/forbackup dengan nama
backup-SESUAITANGGAL.tar.gz. Kemudian, file
backup-SESUAITANGGAL.tar.gz ini akan kita kopikan ke Server Backup dengan menggunakan rsync. Dan agar di Server Utama tidak kepenuhan harddisknya, file hasil kompres yang sudah kita buat akan langsung otomatis dihapus setelah dikirim ke Server Backup.
Dari Server Utama ketikkan perintah berikut ini :
rizal@server-utama:~$ cd /home/rizal/Public
rizal@server-utama:~
/home/rizal/Public
$ nano script-backup.sh
Didalamnya isikan dengan script berikut ini :
#!/bin/sh
tar -czvf forbackup/backup-$(date '+%d%m%Y').tgz Novel/
rsync -e ssh --progress --partial --size-only -vz --log-file=/rsynclog/rsynclog.log /home/rizal/Public/forbackup/* rizal@192.168.100.1:/backup
rm -v /home/rizal/Public/forbackup/*
exit 0
Simpan dan tutup file tersebut.
Beri hak akses executable :
rizal@server-utama:~
/home/rizal/Public
$ chmod +x script-backup.sh
8. Masih di direktori
/home/rizal/Public, cobalah tes dengan menjalankan script tersebut.
rizal@server-utama:~
/home/rizal/Public
$ ./script-backup.sh
Jika berhasil seharusnya tampilannya akan seperti berikut :
9. Langkah terakhir adalah memasukkan script ini dalam tugas cron. Kita akan membuat script ini dieksekusi setiap jam 00.00 setiap harinya.
rizal@server-utama:~$ crontab -e
Pada baris paling bawah isikan dengan script berikut ini :
* 00 * * * sh /home/rizal/Public/script-backup.sh
Jika sudah simpan.
Sampai sini seharusnya semua akan berjalan sesuai dengan konsep yang sudah saya tuliskan di awal artikel ini.
Semoga bermanfaat :)
------------------------------------------------------------------------------------------------------------------------------
Memakai Linux sebagai sistem operasi memiliki banyak kelebihan. Selain tahan virus, banyak fungsi-fungsi otomatis yang bisa dilakukan melalui script. Misalnya untuk melakukan backup atau sinkronisasi antar dua
file-sharing server bisa dilakukan dengan command
scp (
server copy) yang dikombinasikan dengan
cron untuk otomatisasi (scheduling).
Command scp memerlukan fungsi ssh (secure shell) untuk bisa tersambung dengan remote server. Supaya ssh bisa langsung connect tanpa mengisikan password, caranya sebagai berikut :
1. Buat sebuah private/public key di local server
ssh-keygen -t rsa
2. Copykan public key tersebut ke remote server
scp ~/.ssh/id_rsa.pub remote_host:
3. Tambahkan key tersebut ke remote server trusted key
Login ke remote server. Jika belum pernah membuat key sama sekali, jalankan ssh-keygen -t rsa guna menyiapkan directory untuk key.
Kemudian tambahkan key yang baru dibuat tadi ke file authorized_keys
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
Ubah akses level file dengan command :
chmod 644 ~/.ssh/authorized_keys
4. Sekarang coba anda login ke remote server melalui ssh
ssh username@remote_server
Jika langkah-langkah diatas benar, harusnya anda bisa masuk tanpa perlu mengetikkan password.
5. Buat script untuk copy file dari remote server
scp username@remote_server:/remote_dir /local_dir
Simpan command tersebut ke sebuah file (misal: mybackup.sh) dan ubah mode filenya dengan chmod 755 mybackup.sh
Copykan file mybackup.sh ke directory /etc/cron.daily supaya bisa running otomatis tiap hari
Tidak ada komentar:
Posting Komentar