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

Node定時備份MySQL的實現(xiàn)

 更新時間:2023年04月23日 16:15:41   作者:webxue  
本文主要介紹了Node定時備份MySQL的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

前段時間發(fā)生了一件令我哭笑不得的事,部署在 Centos 服務(wù)器上的項目,因為需要重新上傳· 部署,所以我執(zhí)行了下面一段命令:

rm -rf /*

當我按下回車之后,發(fā)現(xiàn)終端閃過的一行行代碼,突然感覺事情并不簡單,情急之下,趕緊 ctrl c 中斷終端,中斷之后,便開始通過 fpt 上傳文件,卻發(fā)現(xiàn) ftp 毫無反應(yīng),這下慌了,不會把系統(tǒng)給干沒了吧!

接下來我決定 重啟 服務(wù)器,可是,emmm...,啟動不了了!真的把系統(tǒng)給干沒了!詢問大佬們之后,聽說 阿里云 如果存在 快照,則可以恢復(fù),可是我并沒有保存過快照!直接GG,程序沒了倒無所謂,可是 數(shù)據(jù)庫沒了。

這時我意識到,需要做個 定時任務(wù),定時 備份 數(shù)據(jù)庫,結(jié)合之前封裝的 Email 類,將備份的數(shù)據(jù)庫發(fā)送至郵箱,所以才有了這篇文章。

開發(fā)部署

因為我后端使用的是 nodejs,這里就使用 nodejs 編寫定時任務(wù)吧。

安裝依賴

這里需要 node-schedule 依賴來執(zhí)行定時任務(wù),需要 child_process 依賴來執(zhí)行備份命令。

npm i node-schedule child_process

編寫代碼

src/command 目錄下新建一個 BackupDB.ts 文件,在此文件中引入依賴:

import schedule from "node-schedule";
import { spawn } from "child_process";
import fs from "fs";

定義一個方法 backupDb ,所有的備份操作都在此方法內(nèi):

export const backupDb = () => {}

在方法內(nèi)使用 時間戳 定義備份 唯一 文件名,并 創(chuàng)建流

export const backupDb = () => {
  const dumpFileName = `${Math.round(Date.now() / 1000)}.dump.sql`;
  const writeStream = fs.createWriteStream(dumpFileName);
}

在方法內(nèi)定義備份腳本:

export const backupDb = () => {
  const dumpFileName = `${Math.round(Date.now() / 1000)}.dump.sql`;
  const writeStream = fs.createWriteStream(dumpFileName);
  
  const dump = spawn("mysqldump",[
    "-u",
    "你的mysql賬戶名",
    "-p",
    "你的mysql賬戶密碼",
    "所要備份的數(shù)據(jù)庫名"
  ])
}

接下來定時 執(zhí)行備份 命令:

export const backupDb = () => {
  const dumpFileName = `${Math.round(Date.now() / 1000)}.dump.sql`;
  const writeStream = fs.createWriteStream(dumpFileName);
  
  const dump = spawn("mysqldump",[
    "-u",
    "你的mysql賬戶名",
    "-p",
    "你的mysql賬戶密碼",
    "所要備份的數(shù)據(jù)庫名"
  ])
  schedule.scheduleJob("0 0 1 * * *", function(){
    dump.stdout.pipe(writeStream)
      .on("finish",() => {
        console.log("備份成功")
      })
      .on("error",() => {
        console.log("備份失敗")
      })
  })
}

當然這里寫死的數(shù)據(jù)還可以作為函數(shù)參數(shù)可進行控制,另外這里的 0 0 1 * * * 表示 每天凌晨1點 備份,具體時間格式可參考下圖,或官方文檔

在備份成功的回調(diào)中,調(diào)用 Email 類將備份內(nèi)容發(fā)送至 郵箱,這里不作為重點就暫且不寫。

最后在 src/command/index.js 文件中 引入 備份方法并 調(diào)用

import { backupDb } from "./BackupDB";

backupDb();

pm2部署

這里需要先全局安裝 pm2

npm i pm2 -g

pm2 部署的命令格式為:pm2 start [nodejs文件] --name [別名]

pm2 start ./src/command/index.js --name backupDb

部署完成之后,可以通過 pm2 ls 命令查看。

至此,將在 每天凌晨1點 對數(shù)據(jù)庫進行 備份,并發(fā)送至 郵箱。

結(jié)語

到此這篇關(guān)于Node定時備份MySQL的實現(xiàn)的文章就介紹到這了,更多相關(guān)Node定時備份MySQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node.js引入UIBootstrap的方法示例

    Node.js引入UIBootstrap的方法示例

    這篇文章主要介紹了Node.js引入UIBootstrap的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Node.js基礎(chǔ)模塊babel使用詳解

    Node.js基礎(chǔ)模塊babel使用詳解

    這篇文章主要介紹了Node.js基礎(chǔ)模塊babel使用詳解,babel是由一系列的組件構(gòu)成,所以我們在開發(fā)過程中,要從自行配置組件來開始使用babel的功能
    2022-06-06
  • node基于puppeteer模擬登錄抓取頁面的實現(xiàn)

    node基于puppeteer模擬登錄抓取頁面的實現(xiàn)

    本篇文章主要介紹了node基于puppeteer模擬登錄抓取頁面的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • node(koa2) web應(yīng)用模塊介紹詳解

    node(koa2) web應(yīng)用模塊介紹詳解

    這篇文章主要介紹了node(koa2) web應(yīng)用模塊介紹詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • node.js中的fs.fchownSync方法使用說明

    node.js中的fs.fchownSync方法使用說明

    這篇文章主要介紹了node.js中的fs.fchownSync方法使用說明,本文介紹了fs.fchownSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 深入理解Puppeteer的入門教程和實踐

    深入理解Puppeteer的入門教程和實踐

    這篇文章主要介紹了深入理解Puppeteer的入門教程和實踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • node.js開機自啟動腳本文件

    node.js開機自啟動腳本文件

    這篇文章主要介紹了node.js開機自啟動腳本文件的方法和代碼,這里分享給大家,有需要的小伙伴參考下吧
    2014-12-12
  • Node.js操作mysql數(shù)據(jù)庫增刪改查

    Node.js操作mysql數(shù)據(jù)庫增刪改查

    這篇文章主要介紹使用Node.js操作mysql數(shù)據(jù)庫增刪改查的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Node.js數(shù)據(jù)流Stream之Duplex流和Transform流用法

    Node.js數(shù)據(jù)流Stream之Duplex流和Transform流用法

    這篇文章介紹了Node.js數(shù)據(jù)流Stream之Duplex流和Transform流的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • node實現(xiàn)生成帶參數(shù)的小程序二維碼并保存到本地功能示例

    node實現(xiàn)生成帶參數(shù)的小程序二維碼并保存到本地功能示例

    這篇文章主要介紹了node實現(xiàn)生成帶參數(shù)的小程序二維碼并保存到本地功能,涉及nodejs模塊引用、接口調(diào)用、編碼轉(zhuǎn)換、圖片生成等相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12

最新評論

神农架林区| 宜宾县| 唐山市| 涿鹿县| 紫金县| 新平| 宁远县| 满洲里市| 闽清县| 宁津县| 伊川县| 谢通门县| 西城区| 镇平县| 东乡族自治县| 本溪市| 平定县| 铜川市| 平果县| 洛扎县| 三亚市| 尉氏县| 朝阳市| 天峻县| 原平市| 称多县| 西平县| 苏州市| 金坛市| 呈贡县| 新昌县| 平安县| 五河县| 安达市| 喜德县| 淳安县| 雷山县| 壤塘县| 鄱阳县| 册亨县| 高碑店市|