Crontab

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
sudo nano /script/wordpress_backup.sh
sudo nano /script/laravel_backup.sh

(3) 最後執行,給予可以存取的權限

chmod +x /etc/cron.d/mysql_backup.sh

(4) 如果要手動執行 .sh

bash -c "/script/mysql_backup.sh"

(5) 重啟服務和檢查狀態是否正常

sudo systemctl restart cron
systemctl status 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


留言

這個網誌中的熱門文章

黑暗靈魂3[所有重要物品的取得方式]

黑暗靈魂3[所有姿勢取得方式]

MySQL Replication