Untuk memudahkan proses backup dan simpan pinjam, eh maksudnya simpan menyimpan data dalam sebuah server, kita bisa melakukan mount direktori dari server lain ke server yg kita gunakan. Sebagai contoh, untuk ngehost seratusan web, saya pakai sebuah dedicated server Linux (akan saya sebut sebagai server utama). Dan untuk keperluan backup saya gunakan server lain yg berbeda provider.
Sebuah direktori di server backup yaitu /var/www/backup dapat dengan mudah saya akses saat saya login ke dedicated server. Caranya yaitu dengan melakukan mount direktori tsb. Begini kurang lebih urutan cara yg perlu dikerjakan:
- Pastikan bahwa dari server utama ke server backup dapat login ssh secara password-less. Kalo belum bisa, caranya ada di sini.
- Buat direktori sebagai mount point di server utama, boleh bikin di mana saja, misalnya mkdir /home/backup
- Lakukan instalasi sshfs jika belum yum install sshfs -y
- Sekarang jalankan begini sshfs root@72.21.17.27:/var/www/backup /home/backup
- Perhatikan command tsb ya, jadi remote direktori diikuti oleh direktori server utama sesuai yg telah dibuat
- Jika benar maka saat di server utama saya mengakses /home/backup itu sama saja saya mengakses /var/www/backup yg berbeda server. Jadi file apapun yg saya save di /home/backup sebenarnya telah tersimpan di server backup. Jelas kan?
- Supaya permanen dan tidak perlu re-mount saat server reboot, tambahkan ini di dalam file /etc/fstab:
root@72.21.17.27:/var/www/backup /home/backup fuse.sshfs defaults 0 0
Ada kalanya server backup yg ngadat atau reboot meskipun ini sangat langka terjadi, akan menyebabkan mount diskonek dan tidak dapat diakses lagi dari server utama. Solusinya yaitu terpaksa menjalankan command sshfs ulang. Atau bisa gunakan bash script di bawah ini untuk mengecek otomatis status mount dan apabila dalam kondisi unmount maka script akan menjalankan mount ulang.
#!/bin/bash
# Define your remote directory and mount point
REMOTE_DIR="root@72.21.17.27:/var/www/backup"
LOCAL_DIR="/home/backup"
# Check if sshfs is mounted
if mount | grep $LOCAL_DIR > /dev/null; then
echo "SSHFS is mounted."
else
echo "SSHFS is not mounted, attempting to start..."
# Unmount the directory just in case it's stuck
fusermount -uz $LOCAL_DIR > /dev/null
# Start sshfs
sshfs -o reconnect $REMOTE_DIR $LOCAL_DIR
# Check if sshfs is now mounted
if mount | grep $LOCAL_DIR > /dev/null; then
echo "SSHFS mount successful."
else
echo "SSHFS mount failed. Please check your settings."
fi
fi
Save di /usr/bin dan jadikan executable. Lalu jalankan tiap menit melalui crontab.