Crontab
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
Crontab
(1) 前往排程,加入
sudo nano /etc/crontab |
00 22 * * * root /lab/script/laravel_backup.sh >> /lab/log/laravel_backup.log 2>&1 00 22 * * * root /lab/script/wordpress_backup.sh >> /lab/log/wordpress_backup.log 2>&1 00 22 * * * root /lab/script/mysql_backup.sh >> /lab/log/mysql_backup.log 2>&1 00 22 * * * root /lab/script/send_telegram.sh >> /lab/log/send_telegram.log 2>&1 |
(2) 建立以下三個檔案,內容參考下面
sudo nano /script/mysql_backup.sh |
(3) 最後執行,給予可以存取的權限
chmod +x /etc/cron.d/mysql_backup.sh |
(4) 如果要手動執行 .sh
bash -c "/script/mysql_backup.sh" |
(5) 重啟服務和檢查狀態是否正常
sudo systemctl restart cron |
MySQL
#!/bin/bash # 獲得當前日期(包含年、月、日) current_date=$(date +"%Y%m%d") # MySQL DB的相關資訊 db_user="willywen" db_password="Kyy_y(YL901OzLBh" # 目標備份目錄 backup_dir="/lab/backup/" # 備份所有資料庫 mysqldump -u"$db_user" -p"$db_password" --all-databases > "$backup_dir/mysql_backup_${current_date}.sql" |
Laravel
#!/bin/bash # 獲得當前日期(包含年、月、日) current_date=$(date +"%Y%m%d") # Laravel 的目錄路徑 laravel_dir="/var/www/html/laravel.local" # 目標備份目錄 backup_dir="/lab/backup/" # 執行的語法 /bin/tar -czf "$backup_dir/laravel_backup_${current_date}.tar.gz" -C "$laravel_dir" . |
Wordpress
#!/bin/bash # 獲得當前日期(包含年、月、日) current_date=$(date +"%Y%m%d") # Laravel 的目錄路徑 wordpress_dir="/var/www/wordpress.local" # 目標備份目錄 backup_dir="/lab/backup/" # 執行的語法 /bin/tar -czf "$backup_dir/wordpress_backup_${current_date}.tar.gz" -C "$wordpress_dir" . |
(6) 將該台主機三個備份檔備份到另一台主機,需先在 192.168.1.244 產生 ssh 金鑰
ssh-keygen -t rsa |
將公鑰複製到 192.168.1.236
ssh-copy-id willywen@192.168.1.236 |
可以測試一下是否 ssh 過去 192.168.1.244
ssh willywen@192.168.1.236 |
(7) 在原有的 /etc/crobtab 底下,我們新增一個任務
# 每天三個時段將資料備份到另一台主機 56 10 * * * root rsync -avz --no-times /lab/backup/ willywen@192.168.1.236:/244.backup/ >> /lab/log/rsync.log 2>&1 |
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
留言