# 在文件中编写如下内容 ## 指定到你安装的Mongodb bin目录下的mongodump dump=/www/server/mongodb/bin/mongodump ## 填写你创建dump_bak文件的绝对路径 out_dir=/www/backup/mongodump/dump_bak ## 填写你创建tar_bak文件的绝对路径 tar_dir=/www/backup/mongodump/tar_bak ## 记录备份时间 sysdate=`date +%Y%m%d_%H%M%S` ## 设置删除期限,删除30天前的备份 days=30 ## 设置最终压缩的文件名称,带有日期 tar_bak="mondodb_bak_$sysdate.tar.gz" if [ -d $out_dir ];then cd $out_dir else ## "文件夹不存在" sudo mkdir -p $out_dir cd $out_dir fi if [ ! -d $tar_dir ];then ## "文件夹不存在" sudo mkdir -p $tar_dir fi # 删除之前的dump文件 sudo rm -rf $out_dir/* # 创建新的文件夹存放dump文件 sudo mkdir -p $out_dir/$sysdate # 导出127.0.0.1机器上的leanote库的所有表到$out_dir/$sysdate文件夹 $dump -h 127.0.0.1 -d leanote -o $out_dir/$sysdate # 压缩$out_dir/$sysdate到目标文件夹 sudo tar -zcvf $tar_dir/$tar_bak $out_dir/$sysdate # 删除指定期限钱的备份文件 sudo find $tar_dir/ -mtime +$days -delete echo "===数据库: leanote 备份完成===" # 退出 exit
#!/bin/bash
##############################################
# 资源监控
##############################################
# 配置日志文件
LOG_FILE="/var/log/supervisory_control.log"
MAX_LOG_SIZE=10485760 # 10MB
# 安全配置:设置安全路径
export PATH="/usr/bin:/bin:/usr/sbin:/sbin"
# 日志函数
log_message() {
local level=$1
local message=$2
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
# 创建日志目录(如果不存在)
local log_dir=$(dirname "$LOG_FILE")
if [ ! -d "$log_dir" ]; then
mkdir -p "$log_dir" 2>/dev/null || {
echo "无法创建日志目录: $log_dir" >&2
return 1
}
fi
# 检查日志文件大小并轮转
if [ -f "$LOG_FILE" ] && [ $(stat -c%s "$LOG_FILE" 2>/dev/null || echo 0) -gt $MAX_LOG_SIZE ]; then
mv "$LOG_FILE" "${LOG_FILE}.old" 2>/dev/null
fi
# 写入日志
echo "[$timestamp] [$level] $message" | tee -a "$LOG_FILE" 2>/dev/null
}
# 检查必需命令是否存在
check_commands() {
local commands=("top" "df" "fr