node数据库文件备份实现

实现原理

利用定时器执行脚本,每天备份sql文件

定时器Crontab

Crontab是Linux中的一种任务定时工具,可以帮助我们在指定时间自动执行特定的命令或脚本(系统默认安装并启动Crontab的)

相关命令

js 复制代码
$ crontab -l // 查看定时任务
$ crontab -e // 编辑所有任务

执行crontab -e 编辑任务时 ,编辑器中有7个字段,分别表示分钟、小时、日、月、周、要执行的脚本或命令;

javascript 复制代码
0 1 * * * /var/mysql_data/mysqlbak.sh // 每天凌晨1点执行数据库文件备份
30 21 * * 5 /path/to/backup_script.sh // 每周五晚上9点半备份数据库
0 * * * * /path/to/clean_script.sh // 每小时运行一次清理脚本

备份脚本

mysql导入导出使用命令mysqldump

  • mysqldump 是个mysql自带的命令行工具,单线程执行,可以用来备份和还原数据。可以生成 CSV、TXT、XML格式的文件输出
  • 格式:mysqldump -u [用户名] -p[密码] [其他选项] [数据库名] > [备份文件.sql]

下面是备份mysql的sh脚本

bash 复制代码
BACKUP_FILE_NAME=old_`date +"%Y%m%d"`;
cd /var/mysql_data
mysqldump -u root -p xxxxx --host=127.0.0.1 --port=3306 --databases test_sql --single-transaction  --column-statistics=0 > ${BACKUP_FILE_NAME}.sql
find /var/mysql_data/ -mtime +30 -name "*.sql" -exec rm -f {} \;
  • ---column-statistics=0 该参数用于关闭存储引擎收集和存储表列统计信息的功能(MySQL8.x之前的版本是没有直方图和COLUMN_STATISTICS表的,不关闭会备份出来导入时导致提示警告)
  • --single-transaction #兼容InnoDB 一致性 服务可用性,获得一致性备份,减少锁表

下面是定时重启docker 某个服务sh脚本,以kkfileview为例

bash 复制代码
# 容器名或ID
CONTAINER_NAME="kkfileview"

# 停止容器
docker stop $CONTAINER_NAME

# 重启容器
docker start $CONTAINER_NAME

# 可选:输出操作结果
echo "Docker container $CONTAINER_NAME restarted successfully."

彩蛋:NTPdate同步更新时间

使用ntpdate工具来实现自动更新时间

NTPdate是一种在Linux和类Unix系统中同步网络时间协议(NTP)服务器时间的命令行程序。它可以让你的系统时钟与互联网上的标准时间服务器保持一致,从而确保系统时间的准确性。

在centos系统中使用ntpdate

arduino 复制代码
// 安装ntpdate工具
$ yum -y install ntpdate

// 设置系统时间和网络时间同步
$ ntpdate pool.ntp.org // 或者ntp.aliyun.com  
// 此命令将把你的系统时间设置为与`ntp.aliyun.com`服务器相同的时间。
// 如果不能连外网,则需要指定一台服务器当作时间服务器。再由其他内网服务器作为客户端从时间服务器同步时间

// 查询ntp服务器时间:
$ ntpdate -q pool.ntp.org

在定时任务中

javascript 复制代码
// 编辑定时任务
$ crontab -e

// 添加定时任务命令
0 * * * * /usr/sbin/ntpdate pool.ntp.org >> /var/log/ntpdate.log 2>&1 // 将每小时同步一次时间,并将日志记录到`/var/log/ntpdate.log`文件
相关推荐
Never_Satisfied6 小时前
在JavaScript / Node.js中,package.json文件中的依赖项自动选择最新版安装
javascript·node.js·json
yhole8 小时前
如何升级node.js版本
node.js
Luna-player8 小时前
vue3,单页应用学习笔记
node.js
天远云服9 小时前
天远企业司法认证API对接实战:PHP构建B2B供应链合规防火墙
大数据·开发语言·后端·node.js·php
lzp079111 小时前
如何在Windows系统上安装和配置Node.js及Node版本管理器(nvm)
windows·node.js
weiwx8314 小时前
【前端】Node.js使用教程
前端·node.js·vim
i建模15 小时前
Ubuntu Node.js 升级方案
linux·运维·ubuntu·node.js
结网的兔子17 小时前
前端学习笔记(实战准备篇)——用vite构建一个项目【吐血整理】
前端·学习·elementui·npm·node.js·vue
i建模17 小时前
npm国内镜像源加速
前端·npm·node.js
热爱生活的五柒1 天前
解决 npm install 一直在转圈的问题
前端·npm·node.js