cronjob定時啟動備份資料

2021-10-23 22:51:26 字數 2375 閱讀 8830

apiversion: batch/v1beta1

kind: cronjob

metadata:

name: mysqldump

spec:

jobtemplate:

spec:

completions: 1

template:

spec:

restartpolicy:

volumes:

- name: mysql-master-script

hostpath:

- name: mysql-master-backup

hostpath:

- name: local-time

hostpath:

path: /etc/localtime

containers:

- name: mysqldump-container

image: nacos/nacos-mysql-master:latest

volumemounts:

- name: mysql-master-script

mountpath: /var/db/script

- name: local-time

mountpath: /etc/localtime

- name: mysql-master-backup

mountpath: /var/db/backup

command:

- "sh"

- "/var/db/script/mysqldump.sh"

schedule:

這是乙個樣式模板,在裡面根據自己資料庫的資訊進行更改完善,schedule和定時任務的規則相同* * * * * 分時日月周,按照需要的時間執行,但注意最好是自己每週親自執行一邊job

需要注意的是,由於定時任務的特殊性,很可能某個 job 還沒有執行完,另外乙個新 job 就產生了。這時候,你可以通過 spec.concurrencypolicy 欄位來定義具體的處理策略。

比如:concurrencypolicy=allow,這也是預設情況,這意味著這些 job 可以同時存在;

concurrencypolicy=forbid,這意味著不會建立新的 pod,該建立週期被跳過;

concurrencypolicy=replace,這意味著新產生的 job 會替換舊的、沒有執行完的 job。而如果某一次 job 建立失敗,這次建立就會被標記為「miss」。當在指定的時間視窗內,miss 的數目達到 100 時,那麼 cronjob 會停止再建立這個 job。這個時間視窗,可以由 spec.startingdeadlineseconds 字段指定。比如 startingdeadlineseconds=200,意味著在過去 200 s 裡,如果 miss 的數目達到了 100 次,那麼這個 job 就不會被建立執行了。

#!/bin/bash

#備份個數

number=3

#備份儲存路徑

backup_dir=/var/db/backup

#日期dd=`date +%y%m%d`

#備份工具

tool=/usr/bin/mysqldump

#使用者名稱

username=root

#密碼password=

#將要備份的資料庫

database_name=test

#簡單寫法

mysqldump -u root -p users > /root/mysqlbackup/users-$filename.sql

$tool -u $username -p$password -hmysql-master -p3306 --databases $database_name > $backup_dir/$database_name-$dd.sql

#寫建立備份日誌

echo "create $backup_dir/$database_name-$dd.sql" >> $backup_dir/log.txt

#找出需要刪除的備份

delfile=`ls -l -crt $backup_dir/*.sql | awk '' | head -1`

#判斷現在的備份數量是否大於$number

count=`ls -l -crt $backup_dir/*.sql | awk '' | wc -l`

if [ $count -gt $number ]

then

rm $delfile //刪除最早生成的備份只保留number數量的備份

#寫刪除檔案日誌

echo "delete $delfile" >> $backup_dir/log.txt

fi

指令碼根據自己需求編寫

mysql 定時備份資料

標籤 空格分隔 mysql mysqldump 編寫shell指令碼 bin bash description mysql buckup shell script user username 連線資料庫的 使用者名稱 password password 連線資料庫的 密碼 database your...

mysql定時備份資料

備份指令碼 生產環境已經使用,沒有問題 bin bash 設定mysql的登入使用者名稱和密碼 根據實際情況填寫 mysql user root mysql password 123456 mysql host localhost mysql port 3306 mysql charset utf8...

Mysql遠端定時備份資料

1 建立備份路徑mkdir data backup test 2 建立備份指令碼vim backup.sh寫入shell mysqldump h 需要備份資料庫所在機器ip u使用者名稱 p密碼 備份的資料庫名 opt q r skip lock tables 備份檔案所在路徑例項 mysqldum...