Linux 定時任務基本知識
crontab
yum install crontabs (安裝 crontabs)
systemctl enable crond (設為開機啟動)
systemctl start crond(啟動crond服務)
systemctl status crond (查看狀態)
systemctl restart crond (重啟服務)
語法:
crontab [選項]
選項說明:-e :編輯定時任務-l :查詢 任務-r :刪除當前用戶所有的任務
新增一個定時任務
1、進入編輯頁面
crontab -e
2、編寫任務
語法:
* * * * * 執行的任務
# 第一個 * 一小時的第幾分鐘,范圍 0-59
# 第二個 * 一天中的第幾個小時,范圍0-23
# 第三個 * 一月中的第幾天,范圍 1-31
# 第四個 * 一年中的第幾月,范圍 1-12
# 第五個 * 一周當中的星期幾,范圍 0-7 0和7都代表周日特殊符號
* 代表任何時間
, 代表不連續的時間,比如 0 8,12,16 * * * 代表每天 8點 12點 16點 都執行一次命令
- 代表連續的時間,比如 0 5 * * 1-6 代表,每周一到周六的凌晨5點執行命令
*/n 代表每個多久執行一次,比如 */10 * * * * 代表每個10分鐘執行一次
MySQL 備份知識
# 導出
# mysqldump -h 主機 -u用戶名 -p密碼 數據庫1 數據庫2> E:/文件名
# 如果不寫表名,默認備份該數據庫中的全部表
mysqldump -h localhost -u root -p schooldb test >E:/a.sqlmysqldump -h localhost -uroot -padmin shop > D:/a.sql
備份腳本
在 home/mydata/db_back 創建一個腳本 db-back.sh
#!/bin/bashecho '開始備份數據'# 定義 MySQL docker容器名稱和備份目錄
MYSQL_CONTAINER="mysql"
BACKUP_DIR="/home/mydata/db_back"# 定義 MySQL 容器中的數據庫用戶名、密碼和備份文件名
MYSQL_USER="root"
MYSQL_PASSWORD="admin"
BACKUP_FILE="${BACKUP_DIR}/earn-$(date +%Y%m%d%H%M%S).sql"# 執行備份命令
docker exec ${MYSQL_CONTAINER} mysqldump --default-character-set=utf8mb4 --single-transaction -u ${MYSQL_USER} -p${MYSQL_PASSWORD} earn > ${BACKUP_FILE}# 檢查備份是否成功
if [ $? -eq 0 ]; thenecho "MySQL 數據庫備份成功:${BACKUP_FILE}"
elseecho "MySQL 數據庫備份失敗"
fi
# 刪除14天前的備份文件
find ${BACKUP_DIR} -type f -name "*.sql" -mtime +14 -delete
echo '完成備份'
定時任務
# 創建定時任務
crontab -e# 每天凌晨一點開始執行 /home/mydata/db_back/db-back.sh 腳本,并將輸出追加到 /home/mydata/db_back/db_back.log 文件中
0 1 * * * sh /home/mydata/db_back/db-back.sh >> /home/mydata/db_back/db_back.log 2>&1