參考網站:
https://wiki.qnap.com/wiki/Add_items_to_crontab
Step 1) 建立DB備份排程, 命為backup_db.sh, 並加入
mariadb 5 路徑
複製內容到剪貼板
代碼:
/mnt/ext/opt/mariadb/bin/mysqldump -u 用戶 -p密碼 數據庫 | gzip > 目的地/$(date +%Y%m%d)_db.sql.gz
mariadb 10 路徑
複製內容到剪貼板
代碼:
/mnt/ext/opt/mariadb10/bin/mysqldump -u 用戶 -p密碼 數據庫 | gzip > 目的地/$(date +%Y%m%d)_db.sql.gz
$(date +%Y%m%d) 意思是調用日期並設為 "20200524", 所以出來的備份會命名為 "20200524_db.sql.gz"
我把目的地設為
複製內容到剪貼板
代碼:
/share/CACHEDEV3_DATA/Backup/Database
Step 2) 修改權限 backup_db.sh 為755或775(包括群組)
複製內容到剪貼板
代碼:
chmod +x backup_db.sh
Step 3) 把 backup_db.sh 放在
複製內容到剪貼板
代碼:
/usr/local/sbin/
Step 4) 備份及修改
複製內容到剪貼板
代碼:
/etc/config/crontab
Step 5) 在排程最底加入新排程工作
複製內容到剪貼板
代碼:
05 00 * * 1 /usr/local/sbin/backup_db.sh
前面的CODE是指時間:
https://crontab.guru/#05_00_*_*_1 (At 00:05 on Monday.)
Step 6) 重啟 crontab 服務
複製內容到剪貼板
代碼:
crontab /etc/config/crontab && /etc/init.d/crond.sh restart
Step 7) 如果是 mariadb10,注意 port 是什麼(這裡設定為3306)並修改 /etc/config/my.cnf,找
複製內容到剪貼板
代碼:
# The following options will be passed to all MariaDB clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MariaDB server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
改為
複製內容到剪貼板
代碼:
# The following options will be passed to all MariaDB clients
[client]
#password = your_password
port = 3306
socket = /var/run/mariadb10.sock
# Here follows entries for some specific programs
# The MariaDB server
[mysqld]
port = 3306
socket = /var/run/mariadb10.sock
否則會出現以下錯誤:
引用:
"Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" when trying to connect