最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用Docker定時(shí)備份數(shù)據(jù)

 更新時(shí)間:2024年04月13日 10:42:15   作者:yancqitcode  
這篇文章主要介紹了如何使用Docker定時(shí)備份數(shù)據(jù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

一、Docker鏡像制作

鏡像制作目錄

mc下載地址

- rsyncd.conf

# https://download.samba.org/pub/rsync/rsyncd.conf.5
port 873
uid = nobody
gid = nobody
use chroot = yes
max connections = 5
syslog facility = local5
pid file = /var/run/rsyncd.pid
read only = true
[backup]
path = /home/backup

root

# min   hour    day     month   weekday command
0       *       *       *       *       run-parts /home/1hour
0       0       *       *       *       run-parts /home/0Hday
0       1       *       *       *       run-parts /home/1Hday
0       2       *       *       *       run-parts /home/2Hday
0       3       *       *       *       run-parts /home/3Hday
0       5       *       *       *       run-parts /home/5Hday
0       4       *       *       6       run-parts /home/1week

Dockerfile

FROM alpine:3.19.1
WORKDIR /home
COPY root /var/spool/cron/crontabs/root
COPY rsyncd.conf /home
COPY mc /home
RUN chmod +x mc
RUN mkdir 1hour && mkdir 0Hday && mkdir 1Hday && mkdir 2Hday && mkdir 3Hday && mkdir 5Hday && mkdir 1week
RUN echo "http://mirrors.aliyun.com/alpine/v3.19/community" > /etc/apk/repositories
RUN echo "http://mirrors.aliyun.com/alpine/v3.19/main" >> /etc/apk/repositories
RUN apk update && apk upgrade
RUN apk --no-cache add bash mysql-client rsync tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone

鏡像制作

cd /home/dockerimg/crontab
docker build --tag crontab:1.0 .

二、MySQL數(shù)據(jù)備份

backup-data-mysql.sh

#!/bin/sh
log_save_days=30						# 備份日志保留幾天
log_path=/home/logs						# 備份日志路徑
log_file=backup-data-mysql.log			# 備份日志名稱
data_path=/home/backup/mysql			# 備份路徑
data_dir=$(date +%Y%m)					# 備份數(shù)據(jù)目錄
mysql_path=/home/mysql/data				# mysql-bin.*日志存放目錄
mysql_bin=mysql-bin.index				# mysql-bin.index位置
mysql_addr=192.168.1.6					# mysql地址
mysql_port=3306							# mysql端口
mysql_user=root							# mysql用戶名
mysql_password=12345678					# mysql密碼
data_dir_before=$(date -d@"$(( `date +%s`-86400))" +"%Y%m")
mkdir -p /home/crontab/logs
mkdir -p $data_path/$data_dir
mkdir -p $data_path/$data_dir_before
echo `` >> $log_path/$(date +%Y%m)-$log_file
echo "備份開始時(shí)間: "$(date +%F%n%T) >> $log_path/$(date +%Y%m)-$log_file
mysqladmin -h$mysql_addr -P$mysql_port -u$mysql_user -p$mysql_password flush-logs
count=`wc -l $mysql_path/$mysql_bin |awk '{print $1}'`
num=0
for file in `cat $mysql_path/$mysql_bin`
do
    base=`basename $file`
    num=`expr $num + 1`
    if [ $num  -ne $count ] && (! test -e $data_path/$data_dir/$base.log.gz) && (! test -e $data_path/$data_dir_before/$base.log.gz)
    then
		gzip -c $mysql_path/$base > $data_path/$data_dir/$base.log.gz
		echo "備份: "$data_path/$data_dir/$base.log.gz >> $log_path/$(date +%Y%m)-$log_file
	fi
done
echo "備份結(jié)束時(shí)間: "$(date +%F%n%T) >> $log_path/$(date +%Y%m)-$log_file
find $log_path -type f -name "*$log_file" -mtime +$log_save_days -exec rm -rf {} \;

三、Minio數(shù)據(jù)備份

backup-data-minio.sh

#!/bin/sh
log_save_days=30						# 備份日志保留幾天
log_path=/home/logs						# 備份日志路徑
log_file=backup-data-minio.log			# 備份日志名稱
data_path=/home/backup/minio			# 備份路徑
data_dir=$(date +%Y%m)					# 備份數(shù)據(jù)目錄
minio_dir=$(date +%Y%m%d)				# minio存儲(chǔ) 月 $(date +%Y%m) 天 $(date +%Y%m%d)
minio_addr=http://192.168.1.6:9000		# minio地址
minio_user=admin						# minio用戶名
minio_password=123456					# minio密碼
minio_bucket=bucket						# minio桶名稱
mkdir -p /home/crontab/logs
mkdir -p $data_path/$data_dir
mkdir $data_path/$data_dir/tmp
echo `` >> $log_path/$(date +%Y%m)-$log_file
echo "備份開始時(shí)間: "$(date +%F%n%T) >> $log_path/$(date +%Y%m)-$log_file
/home/mc alias set minio_backup $minio_addr $minio_user $minio_password
minio_bucket=test
/home/mc cp --recursive minio_backup/$minio_bucket/$minio_dir $data_path/$data_dir/tmp
cd $data_path/$data_dir/tmp
tar -zcf $data_path/$data_dir/$minio_bucket-$minio_dir.tar.gz *
rm -rf $data_path/$data_dir/tmp
echo "備份: "$data_path/$data_dir/$minio_bucket-$minio_dir.tar.gz  >> $log_path/$(date +%Y%m)-$log_file
echo "備份結(jié)束時(shí)間: "$(date +%F%n%T) >> $log_path/$(date +%Y%m)-$log_file
find $log_path -type f -name "*$log_file" -mtime +$log_save_days -exec rm -rf {} \;

四、數(shù)據(jù)跨服務(wù)器傳輸

crondbase.sh

#!/bin/sh
crond -f -l 8

cronddata.sh

#!/bin/sh
rsync --daemon --config=/home/rsyncd.conf
crond -f -l 8

rsyncd.secrets

root:password

backup-data-copy.sh

#!/bin/sh
# 只傳輸變化部分、支持?jǐn)帱c(diǎn)續(xù)傳、同步服務(wù)器都需要安裝rsync
log_save_days=30						# 日志保留幾天
log_path=/home/logs						# 日志路徑
log_file=backup-data-copy.log			# 日志名稱
echo `` >> $log_path/$(date +%Y%m)-$log_file
echo "數(shù)據(jù)傳輸開始時(shí)間: "$(date +%F%n%T) >> $log_path/$(date +%Y%m)-$log_file
rsync -avzP --password-file=/home/rsyncd.secrets root@192.168.6.12::backup /home/backup
echo "數(shù)據(jù)傳輸結(jié)束時(shí)間: "$(date +%F%n%T) >> $log_path/$(date +%Y%m)-$log_file
find $log_path -type f -name "*$log_file" -mtime +$log_save_days -exec rm -rf {} \;

五、Nginx日志分割

#!/bin/sh
log_save_days=30					# 備份日志保留幾天
log_path=/home/logs					# 備份日志路徑
log_file=backup-log-nginx.log		# 備份日志名稱
data_save_days=60					# 備份保留幾天
data_path=/home/nginx/logs			# 備份路徑
mkdir -p /home/crontab/logs
mkdir -p /home/nginx/logs/access
mkdir -p /home/nginx/logs/error
echo `` >> $log_path/$(date +%Y%m)-$log_file
echo "備份開始時(shí)間: "$(date +%F%n%T) >> $log_path/$(date +%Y%m)-$log_file
for item in "access" "error"
do
  gzip -c $data_path/$item.log > $data_path/$item/$(date -d@"$(( `date +%s`-3600))" +"%Y-%m-%d")_$item.log.gz
  echo "備份: "$data_path/$item/$(date -d@"$(( `date +%s`-3600))" +"%Y-%m-%d")_$item.log.gz >> $log_path/$(date +%Y%m)-$log_file
  rm -rf $data_path/$item.log && touch $data_path/$item.log
done
find $data_path/$item -type f -name "*.gz" -mtime +$data_save_days -exec rm -rf {} \;
echo "備份結(jié)束時(shí)間: "$(date +%F%n%T) >> $log_path/$(date +%Y%m)-$log_file
find $log_path -type f -name "*$log_file" -mtime +$log_save_days -exec rm -rf {} \;

六、Docker啟動(dòng)

/home/docker/crontab

數(shù)據(jù)庫服務(wù)器
docker-crontab-data.yaml

version: "3"
services:
  crontab:
    image: "crontab:1.0"
    restart: always
    container_name: ser-crontab
    hostname: crontab
    ports:
      - 873:873
    networks:
      - apphost
    environment:
      TZ: "Asia/Shanghai"
    volumes:
      - /home/docker/crontab/backup-log-nginx.sh:/home/0Hday/backup-log-nginx.sh
      - /home/docker/crontab/backup-data-mysql.sh:/home/1Hday/backup-data-mysql.sh
      - /home/docker/crontab/backup-data-minio.sh:/home/2Hday/backup-data-minio.sh
      - /home/docker/crontab/cronddata.sh:/home/command.sh
      - /home/backup:/home/backup
      - /home/docker/logs:/home/logs
      - /home/nginx/logs:/home/nginx/logs
      - /home/mysql/data:/home/mysql/data
    command: >
       sh -c "/home/command.sh"
networks:
  apphost:

數(shù)據(jù)備份服務(wù)器
docker-crontab-base.yaml

version: "3"
services:
  crontab:
    image: "crontab:1.0"
    restart: always
    container_name: ser-crontab
    hostname: crontab
    networks:
      - apphost
    environment:
      TZ: "Asia/Shanghai"
    volumes:
      - /home/docker/crontab/backup-log-nginx.sh:/home/0Hday/backup-log-nginx.sh
      - /home/docker/crontab/backup-data-copy.sh:/home/3Hday/backup-data-copy.sh
      - /home/docker/crontab/rsyncd.secrets:/home/rsyncd.secrets
      - /home/docker/crontab/crondbase.sh:/home/command.sh
      - /home/backup:/home/backup
      - /home/docker/logs:/home/logs
      - /home/nginx/logs:/home/nginx/logs
    command: >
       sh -c "/home/command.sh"
networks:
  apphost:

數(shù)據(jù)庫服務(wù)器啟動(dòng)

mkdir -p /home/docker/crontab && mkdir -p /home/docker/logs
cd /home/docker/crontab && chmod 777 *.* && chmod 600 rsyncd.secrets
docker-compose -f /home/docker/crontab/docker-crontab-data.yaml -p crontab up -d

數(shù)據(jù)備份服務(wù)器啟動(dòng)

mkdir -p /home/docker/crontab && mkdir -p /home/docker/logs
cd /home/docker/crontab && chmod 777 *.* && chmod 600 rsyncd.secrets
docker-compose -f /home/docker/crontab/docker-crontab-base.yaml -p crontab up -d

七、Docker備份日志

/home/docker/logs/202404-backup-data-copy.log

數(shù)據(jù)傳輸開始時(shí)間: 2024-04-12 03:00:00
數(shù)據(jù)傳輸結(jié)束時(shí)間: 2024-04-12 03:00:00

/home/docker/logs/202404-backup-log-nginx.log

備份開始時(shí)間: 2024-04-12 00:00:00
備份: /home/nginx/logs/access/2024-04-11_access.log.gz
備份: /home/nginx/logs/error/2024-04-11_error.log.gz
備份結(jié)束時(shí)間: 2024-04-12 00:00:00

/home/docker/logs/202404-backup-data-minio.log

備份開始時(shí)間: 2024-04-12 02:00:00
備份: /home/backup/minio/202404/test-20240412.tar.gz
備份結(jié)束時(shí)間: 2024-04-12 02:00:00

/home/docker/logs/202404-backup-data-mysql.log

備份開始時(shí)間: 2024-04-12 01:00:00
備份: /home/backup/mysql/202404/mysql-bin.000041.log.gz
備份結(jié)束時(shí)間: 2024-04-12 01:00:03

到此這篇關(guān)于使用Docker定時(shí)備份數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Docker定時(shí)備份數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker中Dockerfile方式建立鏡像HelloWorld

    docker中Dockerfile方式建立鏡像HelloWorld

    這篇文章主要介紹了docker中Dockerfile方式建立鏡像HelloWorld,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 解決Mac Docker x509證書的問題

    解決Mac Docker x509證書的問題

    這篇文章主要介紹了解決Mac Docker x509證書的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Docker啟動(dòng)gitlab后22端口被占用如何解決

    Docker啟動(dòng)gitlab后22端口被占用如何解決

    本文主要介紹了Docker啟動(dòng)gitlab后22端口被占用如何解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Dockerfile 指令 ADD 和 COPY介紹

    Dockerfile 指令 ADD 和 COPY介紹

    ADD指令的功能是將主機(jī)構(gòu)建環(huán)境(上下文)目錄中的文件和目錄、以及一個(gè)URL標(biāo)記的文件 拷貝到鏡像中,COPY指令和ADD指令功能和使用方式類似。只是COPY指令不會(huì)做自動(dòng)解壓工作。本文給大家介紹的非常詳細(xì),需要的朋友參考下
    2017-03-03
  • docker使用nginxWebUI配置全過程

    docker使用nginxWebUI配置全過程

    根據(jù)官方文檔,初始化賬戶后進(jìn)入系統(tǒng),申請(qǐng)配置反向代理,總結(jié)個(gè)人經(jīng)驗(yàn)供參考,歡迎支持腳本之家平臺(tái)
    2025-09-09
  • docker容器使用內(nèi)存大小限制方法

    docker容器使用內(nèi)存大小限制方法

    我們使用docker時(shí),經(jīng)常會(huì)遇到docker容器使用內(nèi)存大于docker宿主機(jī)內(nèi)存,導(dǎo)致宿主機(jī)奔潰,從而影響其他宿主機(jī)上容器的運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于docker容器使用內(nèi)存大小限制的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • 使用Docker Compose一鍵部署OnlyOffice的完整指南與配置解析

    使用Docker Compose一鍵部署OnlyOffice的完整指南與配置解析

    OnlyOffice作為一款強(qiáng)大的開源辦公套件,不僅提供與Microsoft Office高度兼容的在線編輯體驗(yàn),還支持實(shí)時(shí)協(xié)作編輯,成為許多企業(yè)和團(tuán)隊(duì)的首選解決方案,下面就將詳細(xì)介紹如何使用Docker Compose快速部署功能完整的OnlyOffice服務(wù)棧
    2026-01-01
  • 查看docker是否處于啟動(dòng)狀態(tài)的方法詳解

    查看docker是否處于啟動(dòng)狀態(tài)的方法詳解

    Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,本文主要給大家介紹了查看docker是否處于啟動(dòng)狀態(tài)的方法,需要的朋友可以參考下
    2024-06-06
  • Docker安裝jenkins實(shí)現(xiàn)微服務(wù)多模塊打包的示例代碼

    Docker安裝jenkins實(shí)現(xiàn)微服務(wù)多模塊打包的示例代碼

    本文主要介紹了Docker安裝jenkins實(shí)現(xiàn)微服務(wù)多模塊打包的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Docker Compose快速部署多容器服務(wù)實(shí)戰(zhàn)的實(shí)例詳解

    Docker Compose快速部署多容器服務(wù)實(shí)戰(zhàn)的實(shí)例詳解

    使用 Docker Compose 可以輕松、高效的管理容器,它是一個(gè)用于定義和運(yùn)行多容器 Docker 的應(yīng)用程序工具,本文給大家介紹Docker Compose快速部署多容器服務(wù)實(shí)戰(zhàn),感興趣的朋友一起看看吧
    2022-02-02

最新評(píng)論

同仁县| 禄劝| 明光市| 寻甸| 阿荣旗| 治多县| 高青县| 深泽县| 清涧县| 蛟河市| 通许县| 湟中县| 遂川县| 迁西县| 应城市| 双牌县| 资中县| 云和县| 威海市| 绥德县| 天等县| 专栏| 黑龙江省| 二连浩特市| 延安市| 阜新| 荥经县| 丽江市| 永嘉县| 马山县| 孙吴县| 徐州市| 菏泽市| 江阴市| 麟游县| 乐昌市| 巨野县| 麻江县| 开江县| 冀州市| 平度市|