自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

避免刪庫跑路的辦法,你知道嗎?

開發(fā) 前端
為了避免此類情況,需要實(shí)施權(quán)限管理、定期備份數(shù)據(jù),并建立自動化的備份腳本,以確保數(shù)據(jù)安全和系統(tǒng)穩(wěn)定運(yùn)行。

你好,我是悟空。

圖片圖片

一、前言

1.1 刪庫跑路是什么?

刪庫跑路:是一個在開發(fā)和運(yùn)維領(lǐng)域常見的幽默說法,但它指的是一種嚴(yán)重的故障情境:意外刪除了生產(chǎn)數(shù)據(jù)庫中的數(shù)據(jù)。

在實(shí)際操作中,這種情況可能會導(dǎo)致嚴(yán)重的數(shù)據(jù)丟失和業(yè)務(wù)中斷。

1.2 避免刪除跑路的方式

權(quán)限控制: 限制對生產(chǎn)環(huán)境的直接訪問和操作,確保只有受信任的人員才能執(zhí)行敏感操作。

日志審計: 記錄所有操作,包括誰、什么時間、做了什么操作,以便追蹤和審計。

備份策略: 實(shí)施完善的備份策略,定期備份數(shù)據(jù),并將備份數(shù)據(jù)存儲在安全的地方,以便在出現(xiàn)問題時能夠快速恢復(fù)數(shù)據(jù)。

多地備份: 將備份數(shù)據(jù)存儲在不同的地理位置,以防止因某一地點(diǎn)發(fā)生災(zāi)難而導(dǎo)致數(shù)據(jù)丟失。

權(quán)限分離: 采用最小權(quán)限原則,給予員工僅限于其工作職責(zé)所需的最低權(quán)限,避免濫用權(quán)限。

監(jiān)控預(yù)警: 部署監(jiān)控系統(tǒng),監(jiān)視系統(tǒng)狀態(tài)和用戶行為,及時發(fā)現(xiàn)異常操作并采取措施。

培訓(xùn)意識: 對員工進(jìn)行安全意識培訓(xùn),讓他們了解刪除跑路的危害,以及如何正確處理數(shù)據(jù)和執(zhí)行操作。

而最最最重要的一種方式就是備份!

重要的事情說三遍:備份!備份!備份!

為什么說備份是最重要的,因為只要有備份文件,數(shù)據(jù)就能恢復(fù)。但前提是備份文件別被刪了!

那么今天我們就來看下如何備份數(shù)據(jù)庫以及重要的文件。

二、環(huán)境說明

本篇涉及到的服務(wù)器環(huán)境如下表所示:

序號

說明

說明

1

Ubuntu 系統(tǒng)

服務(wù)器操作系統(tǒng)

2

Docker 容器

容器

3

MySQL 數(shù)據(jù)庫

備份數(shù)據(jù)庫,以容器化部署

4

FastDFS 文件存儲或 Redis 數(shù)據(jù)文件

備份磁盤文件

5

expect 工具

自動化交互式任務(wù)的工具

Ubuntu 上安裝有 Docker,MySQL 以容器化的形式部署,F(xiàn)astDFS 分布式文件系統(tǒng),expect 自動化交互式任務(wù)的工具(可以用來遠(yuǎn)程拷貝,但功能不僅僅如此),可自行安裝該工具。

三、備份方案

3.1 備份 MySQL 數(shù)據(jù)庫的所有數(shù)據(jù)

  • 使用 mysqldump 命令備份所有數(shù)據(jù),并生成一個 SQL 文件。
  • 使用 tar 命令將 SQL 文件壓縮成一個文件。
  • 使用 openssl 加密壓縮文件。
  • 刪除過期數(shù)據(jù)
  • 使用 scp 或 rsync 命令將加密文件上傳到遠(yuǎn)程服務(wù)器進(jìn)行異地存儲。

圖片圖片

3.2 備份數(shù)據(jù)文件

  • 壓縮和加密文件
  • 拆分成分卷文件
  • 合并分卷文件
  • 遠(yuǎn)程備份
  • 刪除過期數(shù)據(jù)

圖片圖片

四、自動化定期備份

當(dāng)我們編寫好備份的腳本后,還需要定期執(zhí)行備份操作,那么就少不了添加定時任務(wù)了。

Linux 系統(tǒng)自帶定時任務(wù)功能,我們可以指定一個 cron 作業(yè),在每天凌晨 2 點(diǎn) 10 分運(yùn)行該備份腳本,并將輸出追加到 /home/passjava/backup/cron_log.txt 文件中。

步驟如下:

編輯定時任務(wù)

crontab -uroot -e

添加定時任務(wù)

10 2 * * * bash /home/passjava/backup/你的腳本 >> /home/passjava/backup/cron_log.txt

五、備份腳本

5.1 數(shù)據(jù)庫備份腳本

#!/bin/bash
# 設(shè)置mysql的登錄用戶名和密碼(根據(jù)實(shí)際情況填寫)
mysql_user="root"
mysql_password="xxx"
mysql_host="數(shù)據(jù)庫服務(wù)器 ip"
mysql_port="3306"
#mysql_charset="utf8mb4"
 
# 備份文件存放地址(根據(jù)實(shí)際情況填寫)
backup_locatinotallow=/home/passjava/backup/mysql/passjava_web
 
# 是否刪除過期數(shù)據(jù)
expire_backup_delete="ON"
expire_days=7
backup_time=`date +%Y-%m-%d-%H-%M-%S`

#根據(jù)docker ps獲取mysql容器的ID
mysqlCnotallow=`sudo docker ps -q --filter="name=mysql"`
#在運(yùn)行在docker環(huán)境的mysql中執(zhí)行備份命令
sudo docker exec $mysqlContainerName mysqldump passjava_web -u$mysql_user -p$mysql_password > $backup_location/$backup_time-backup-mysql-passjava_web.sql

tar -czvf - $backup_location/$backup_time-backup-mysql-passjava_web.sql | openssl des3 -salt -k passjava123456 -out $backup_location/$backup_time-backup-mysql-passjava_web.sql.tar.gz

# 刪除過期數(shù)據(jù)
if [ "$expire_backup_delete" == "ON" -a  "$backup_location" != "" ];then
        `find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf`
        echo "Expired backup data delete complete!"
fi

echo "開始遠(yuǎn)程備份 passjava_web"

expect -c "
    spawn scp -r /home/passjava/backup/mysql/passjava_web/$backup_time-backup-mysql-passjava_web.sql.tar.gz passjava@異地服務(wù)器1:/home/passjava/backup/mysql/passjava_web
    expect {
        \"*assword\" {set timeout 300; send \"passjava\r\"; exp_continue;}
        \"yes/no\" {send \"yes\r\";}
    }
 spawn scp -r /home/passjava/backup/mysql/passjava_web/$backup_time-backup-mysql-passjava_web.sql.tar.gz passjava@異地服務(wù)器2:/home/passjava/backup/mysql/passjava_web
    expect {
        \"*assword\" {set timeout 300; send \"passjava\r\"; exp_continue;}
        \"yes/no\" {send \"yes\r\";}
    }
expect eof"

echo "完成遠(yuǎn)程備份 passjava_web"

rm -f $backup_location/$backup_time-backup-mysql-passjava_web.sql

5.2 文件備份腳本

本腳本用于備份 FastDFS 分布式文件系統(tǒng)的文件,也可以改為備份 redis 的數(shù)據(jù)文件。

#!/bin/bash
 
# 備份文件存放地址(根據(jù)實(shí)際情況填寫)
backup_locatinotallow=/home/passjava/backup/fdfs/data
 
# 是否刪除過期數(shù)據(jù)
expire_backup_delete="ON"
expire_days=7
backup_time=`date +%Y-%m-%d-%H-%M-%S`

# 壓縮加密數(shù)據(jù)庫備份文件
tar -czvf - /home/passjava/fdfs | openssl des3 -salt -k passjava123456 | split -b 200m -d - $backup_location/$backup_time-fdfs-data.tar.gz

# 刪除過期數(shù)據(jù)
if [ "$expire_backup_delete" == "ON" -a  "$backup_location" != "" ];then
        `find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf`
        echo "Expired backup data delete complete!"
fi

cat $backup_location/$backup_time-fdfs-data.tar.gz* > $backup_location/$backup_time-fdfs-data-all.tar.gz

echo "開始遠(yuǎn)程備份 fdfs"

expect -c "
    spawn scp -r $backup_location/$backup_time-fdfs-data-all.tar.gz passjava@192.168.1.100:/home/passjava/backup/fdfs/data
    expect {
        \"*assword\" {set timeout 300; send \"passjava\r\"; exp_continue;}
        \"yes/no\" {send \"yes\r\";}
    }
expect eof"

echo "完成遠(yuǎn)程備份 fdfs"

rm -f $backup_location/$backup_time-fdfs-data.tar.gz*

六、總結(jié)

刪庫跑路是指某人惡意刪除重要數(shù)據(jù)后逃避責(zé)任的行為,可能導(dǎo)致嚴(yán)重的經(jīng)濟(jì)損失和安全風(fēng)險。

為了避免此類情況,需要實(shí)施權(quán)限管理、定期備份數(shù)據(jù),并建立自動化的備份腳本,以確保數(shù)據(jù)安全和系統(tǒng)穩(wěn)定運(yùn)行。

本篇主要講解了如何備份數(shù)據(jù)庫和重要的文件,希望能帶給你啟發(fā)。

責(zé)任編輯:武曉燕 來源: 悟空聊架構(gòu)
相關(guān)推薦

2024-10-15 10:32:30

2024-03-28 10:25:58

開源協(xié)議開源軟件

2017-01-18 18:28:54

大數(shù)據(jù)數(shù)據(jù)庫技術(shù)

2025-04-30 09:06:23

AI知識庫大模型

2023-12-12 08:41:01

2021-10-14 06:52:47

算法校驗碼結(jié)構(gòu)

2024-09-18 07:00:00

消息隊列中間件消息隊列

2022-09-29 15:32:58

云計算計算模式

2021-09-13 19:28:42

JavaNetty開發(fā)

2024-04-07 00:00:00

ESlint命令變量

2024-05-28 09:12:10

2022-03-10 08:25:27

JavaScrip變量作用域

2019-12-12 09:23:29

Hello World操作系統(tǒng)函數(shù)庫

2023-12-20 08:23:53

NIO組件非阻塞

2024-04-30 09:02:48

2023-04-26 10:21:04

2024-12-04 08:40:19

2014-05-30 10:23:15

樂跑手環(huán)智能手環(huán)運(yùn)動手環(huán)

2021-10-28 16:19:37

物聯(lián)網(wǎng)人工智能IoT

2024-06-03 14:27:08

ThisAPIThat
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號