____ <==> ____
\___\(**)/___/ TukangBackup.pykit
\___| |___/ multi-mode auto backup all database
L J
|__| https://github.com/ariphx/
vv
A multi-mode auto backup all database solution for MySQL/MariaDB. This Python script offers flexible backup options from remote servers via SSH or directly from the local server. It includes seamless Google Drive integration and Telegram notifications for peace of mind.
- Backup Multi-Mode: Lakukan backup dari server remote via SSH atau langsung dari server lokal tempat skrip berjalan.
- Backup Otomatis Komprehensif: Melakukan
mysqldump --all-databasestermasuk routines, events, dan triggers. - Koneksi Aman SSH: Menggunakan SSH untuk akses remote ke database (untuk mode
ssh-backup). - Konfigurasi Fleksibel: Semua pengaturan dikelola terpisah di
config.ini. - Kompresi
.tar.gz: Menghemat ruang penyimpanan. - Pembersihan Otomatis: Menghapus backup lama di lokal berdasarkan durasi yang dikonfigurasi.
- Integrasi Google Drive: Unggah otomatis file backup ke folder Google Drive Anda.
- Notifikasi Telegram: Dapatkan notifikasi status backup (sukses/gagal) langsung ke Telegram Anda.
- Manajemen Mudah: Dilengkapi dengan berbagai command untuk status, konfigurasi, tes GDrive, dan kontrol notifikasi Telegram.
- Python 3.x
- Di PC/Server yang menjalankan script:
- MySQL/MariaDB Client Tools (
mysqldump) - Untuk mode
ssh-backup: OpenSSH Client
- MySQL/MariaDB Client Tools (
- Di Server Database (Remote):
- Untuk mode
ssh-backup: OpenSSH Server - MySQL/MariaDB Client Tools (
mysqldump)
- Untuk mode
-
Clone Repository:
git clone [https://github.com/ariphx/TukangBackup.git](https://github.com/ariphx/TukangBackup.git) cd TukangBackup -
Buat Virtual Environment (Sangat Disarankan):
python -m venv venv # Aktifkan: # Windows: .\venv\Scripts\activate # Linux/macOS: source venv/bin/activate
-
Instal Dependensi:
pip install pydrive2 requests
-
Siapkan
config.ini:- Salin
config.ini.examplemenjadiconfig.ini:cp config.ini.example config.ini
- Buka
config.inidan isi semua nilai sesuai server, database, dan preferensi Anda (folder tujuan lokal, pengaturan GDrive, detail bot Telegram).- PENTING: Di bagian
[MAIN], aturdefault_backup_mode = sshataudefault_backup_mode = lokalsesuai mode backup utama Anda.
- PENTING: Di bagian
- Salin
-
Siapkan Google Drive (OAuth 2.0 Desktop App):
- Pergi ke Google Cloud Console > API & Services > Credentials.
- Buat "OAuth client ID" baru, pilih "Desktop app".
- Unduh file JSON, lalu ubah namanya menjadi
client_secrets.json. - Tempatkan
client_secrets.jsonini di direktori yang sama denganTukangBackup.pykit. - PENTING: Akun Google yang terautentikasi harus memiliki izin
EditoratauContributorpada folder tujuan Google Drive Anda.
-
Siapkan Notifikasi Telegram:
- Buat bot baru melalui
@BotFatherdi Telegram (/newbot) untuk mendapatkan Token Bot. - Kirim pesan ke bot baru Anda (atau tambahkan bot ke grup dan kirim pesan di sana).
- Buka
https://api.telegram.org/bot[YOUR_BOT_TOKEN]/getUpdatesdi browser Anda untuk mendapatkan Chat ID. - Isi
telegram_bot_tokendantelegram_chat_iddiconfig.ini.
- Buat bot baru melalui
-
Setup Kunci SSH (Untuk mode
ssh-backupjika belum):- Pastikan PC/server yang menjalankan script dapat login ke server database remote via SSH tanpa password (gunakan SSH Key).
# Buat kunci baru jika belum ada ssh-keygen -t rsa -b 4096 # Salin kunci publik Anda ke server remote ssh-copy-id username@ip_server_anda
Pastikan Anda berada di dalam direktori proyek dan virtual environment Anda aktif.
-
Menjalankan Backup via SSH: (Gunakan ini jika skrip berada di PC terpisah dari server database).
python TukangBackup.pykit ssh-backup
-
Menjalankan Backup Lokal: (Gunakan ini jika skrip berada di server database itu sendiri).
python TukangBackup.pykit lokal-backup
-
Menjalankan Backup dengan Mode Default (
config.ini): (Akan menggunakandefault_backup_modeyang diset diconfig.ini).python TukangBackup.pykit
-
Mengecek Status Backup Terakhir:
python TukangBackup.pykit status
-
Melihat Konfigurasi Saat Ini:
python TukangBackup.pykit config
-
Melakukan Tes Koneksi Google Drive: (Pertama kali, akan membuka browser untuk otentikasi. Token akan disimpan di
credentials.json.)python TukangBackup.pykit test-gdrive
-
Mengirim Pesan Tes Notifikasi Telegram:
python TukangBackup.pykit test-tele
-
Mengaktifkan/Menonaktifkan Notifikasi Telegram:
python TukangBackup.pykit tele on # Aktifkan python TukangBackup.pykit tele off # Nonaktifkan python TukangBackup.pykit tele # Lihat status saat ini
-
Menampilkan Bantuan & Penggunaan (Ini!):
python TukangBackup.pykit help
Untuk menjalankan backup secara otomatis menggunakan Cron Job:
- Buka terminal dan edit crontab Anda:
crontab -e
- Tambahkan baris berikut di akhir file (sesuaikan jadwal dan path-nya):
0 3 * * * /usr/bin/python3 /path/to/TukangBackup.pykit [backup_mode] >> /var/log/tukangbackup.log 2>&1
0 3 * * *: Jadwal (di sini, setiap hari jam 3 pagi). Format:menit jam hari_bulan bulan hari_minggu./usr/bin/python3: Path lengkap ke interpreter Python Anda (gunakanwhich python3untuk mencari)./path/to/TukangBackup.pykit: Path lengkap ke skrip Anda (misalnya,/home/user/my_backup_project/TukangBackup.pykit).[backup_mode]: Ganti denganssh-backup(untuk mode SSH) ataulokal-backup(untuk mode lokal). Anda juga bisa menghapus[backup_mode]jika ingin Cron menggunakandefault_backup_modedariconfig.ini.>> /var/log/tukangbackup.log 2>&1: Mengarahkan output dan error ke file log untuk debugging (disarankan).
- Simpan dan keluar dari editor (biasanya Ctrl+X, Y, Enter untuk nano).
Jika Anda mengalami error Google Drive (misalnya, HttpError, token expired, atau masalah otentikasi):
- Jalankan ulang
python TukangBackup.pykit test-gdrive. Ini akan memicu ulang proses otentikasi browser jika token sudah kedaluwarsa atau ada masalah koneksi. - Pastikan file
client_secrets.jsonsudah benar dan berada di folder yang sama dengan skrip. - Pastikan
destination_folder_iddiconfig.inihanya berisi ID folder (misalnya,1bFvBiosNkCvdAwjxuy7avjSBKGBgKW-N), tanpa komentar atau karakter tambahan. - Periksa izin akun Google Anda di Google Drive. Akun yang digunakan harus memiliki izin
EditoratauContributorpada folder tujuan. - Jika masalah berlanjut, hapus file
credentials.jsondi folder skrip Anda, lalu jalankan kembalitest-gdrive. Ini akan memaksa otentikasi ulang dari awal.
Saran, laporan bug, dan kontribusi untuk membuat TukangBackup.pykit menjadi lebih baik sangat diterima.
- Untuk laporan bug atau saran fitur baru, silakan buat Issue baru.
- Untuk kontribusi kode, silakan buat Pull Request.
- Jika ada pertanyaan atau ingin berdiskusi lebih lanjut, jangan ragu untuk menghubungi saya via Facebook.
TukangBackup.pykit adalah proyek sumber terbuka (open source) yang saya kembangkan dan rawat di waktu luang.
Jika Anda merasa alat ini bermanfaat dan ingin memberikan sedikit apresiasi, Anda bisa mendukung saya dengan mentraktir secangkir kopi melalui Trakteer. Setiap dukungan, berapapun nilainya, sangat berarti dan memotivasi saya untuk terus mengembangkan proyek ini.
Terima kasih banyak atas dukungan Anda!
Proyek ini dilisensikan di bawah Lisensi MIT.
