在Linux环境下备份Node.js日志可以通过多种方法实现,以下是一些常用的备份策略和工具:
sudo apt-get install logrotate
sudo yum install logrotate
/etc/logrotate.d/nodejs
文件,添加以下内容:/path/to/nodejs/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
postrotate
/usr/sbin/kill -USR1 `cat /var/run/nodejs.pid`
endscript
}
sudo logrotate -d /etc/logrotate.conf # 测试配置文件是否有语法错误
sudo logrotate -f /etc/logrotate.conf # 强制运行日志轮转
backup_nodejs_logs.sh
的脚本文件:#!/bin/bash
BACKUP_DIR="/path/to/backup/logs"
SOURCE_DIR="/path/to/nodejs/logs"
DATE=$(date %Y%m%d)
mkdir -p "$BACKUP_DIR/$DATE"
cp -r "$SOURCE_DIR"/* "$BACKUP_DIR/$DATE"
tar -czvf "$BACKUP_DIR/$DATE/nodejs_logs_$DATE.tar.gz" -C "$SOURCE_DIR" .
rm -rf "$SOURCE_DIR"/*
chmod x /path/to/backup_nodejs_logs.sh
crontab -e
添加定时任务,例如每天凌晨1点执行备份:0 1 * * * /path/to/backup_nodejs_logs.sh
backup_nodejs_logs_remote.sh
的脚本文件:#!/bin/bash
BACKUP_DIR="/path/to/backup/logs"
SOURCE_DIR="/path/to/nodejs/logs"
REMOTE_USER="remote_user"
REMOTE_IP="remote_ip"
REMOTE_DIR="/path/to/remote/logs"
mkdir -p "$BACKUP_DIR"
cp -r "$SOURCE_DIR"/* "$BACKUP_DIR"
rsync -avz "$BACKUP_DIR" "${REMOTE_USER}@${REMOTE_IP}:${REMOTE_DIR}"
chmod x /path/to/backup_nodejs_logs_remote.sh
crontab -e
添加定时任务,例如每天凌晨1点执行备份:0 1 * * * /path/to/backup_nodejs_logs_remote.sh
cd /path/to/your/nodejs/app/logs
tar -czvf logs_backup_$(date +%Y%m%d%H%M%S).tar.gz *
pm2-logrotate
,可以通过配置pm2来定期切割日志文件,并支持日志文件的压缩和归档。child_process
模块来执行Shell脚本,实现定时备份数据库和日志文件,并通过邮件发送备份报告。通过上述方法,可以有效地备份Linux服务器上的Node.js日志,确保数据的安全性和可追溯性。