Skip to main content
Glama

MemOS-MCP

by qinshu1109
Apache 2.0
3
  • Linux
  • Apple
setup_backup_cron.sh6.11 kB
#!/bin/bash # MemOS定时备份设置脚本 # 用于配置cron定时任务 set -e MEMOS_DIR="/home/qqinshu/视频/MemOS" BACKUP_SCRIPT="$MEMOS_DIR/backup_simple.sh" LOG_FILE="$MEMOS_DIR/memos_data/backups/backup.log" # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 日志函数 log_info() { echo -e "${BLUE}ℹ️ $1${NC}" } log_success() { echo -e "${GREEN}✅ $1${NC}" } log_warning() { echo -e "${YELLOW}⚠️ $1${NC}" } log_error() { echo -e "${RED}❌ $1${NC}" } # 显示帮助信息 show_help() { echo "MemOS定时备份设置脚本" echo "" echo "用法: $0 [选项]" echo "" echo "选项:" echo " -h, --help 显示此帮助信息" echo " -s, --status 显示当前定时任务状态" echo " -i, --install 安装定时备份任务" echo " -r, --remove 移除定时备份任务" echo " -t, --test 测试备份脚本" echo "" echo "默认定时任务:" echo " 每天凌晨2点执行备份" echo " 日志保存到: $LOG_FILE" } # 检查cron服务状态 check_cron_service() { if systemctl is-active --quiet cron 2>/dev/null || systemctl is-active --quiet crond 2>/dev/null; then log_success "cron服务正在运行" return 0 else log_warning "cron服务未运行,尝试启动..." if sudo systemctl start cron 2>/dev/null || sudo systemctl start crond 2>/dev/null; then log_success "cron服务启动成功" return 0 else log_error "无法启动cron服务" return 1 fi fi } # 显示当前定时任务状态 show_status() { log_info "检查当前定时任务状态..." # 检查是否存在MemOS备份任务 if crontab -l 2>/dev/null | grep -q "$BACKUP_SCRIPT"; then log_success "MemOS定时备份任务已配置" echo "" log_info "当前配置:" crontab -l 2>/dev/null | grep "$BACKUP_SCRIPT" echo "" else log_warning "未找到MemOS定时备份任务" fi # 显示最近的备份文件 log_info "最近的备份文件:" if ls "$MEMOS_DIR/memos_data/backups/"memos_backup_*.tar.gz 1> /dev/null 2>&1; then ls -lht "$MEMOS_DIR/memos_data/backups/"memos_backup_*.tar.gz | head -5 else log_warning "未找到任何备份文件" fi } # 安装定时备份任务 install_cron_job() { log_info "安装MemOS定时备份任务..." # 检查备份脚本是否存在 if [ ! -f "$BACKUP_SCRIPT" ]; then log_error "备份脚本不存在: $BACKUP_SCRIPT" exit 1 fi # 确保脚本可执行 chmod +x "$BACKUP_SCRIPT" # 创建日志目录 mkdir -p "$(dirname "$LOG_FILE")" # 检查是否已存在任务 if crontab -l 2>/dev/null | grep -q "$BACKUP_SCRIPT"; then log_warning "定时备份任务已存在,是否要更新?(y/N)" read -r response if [[ ! "$response" =~ ^[Yy]$ ]]; then log_info "取消安装" exit 0 fi # 移除现有任务 remove_cron_job_silent fi # 添加新的cron任务 - 个人电脑使用场景优化 (crontab -l 2>/dev/null; echo "# MemOS自动备份任务 - 个人电脑使用时段执行") | crontab - (crontab -l 2>/dev/null; echo "# 每天上午10点执行(通常开机时段)") | crontab - (crontab -l 2>/dev/null; echo "0 10 * * * $BACKUP_SCRIPT >> $LOG_FILE 2>&1") | crontab - (crontab -l 2>/dev/null; echo "# 每天下午6点执行(下班前备份)") | crontab - (crontab -l 2>/dev/null; echo "0 18 * * * $BACKUP_SCRIPT >> $LOG_FILE 2>&1") | crontab - if [ $? -eq 0 ]; then log_success "定时备份任务安装成功" log_info "任务配置: 每天上午10点和下午6点执行备份" log_info "日志文件: $LOG_FILE" log_warning "注意: 个人电脑需要在这些时间段开机才能执行备份" else log_error "定时备份任务安装失败" exit 1 fi } # 静默移除定时任务(内部使用) remove_cron_job_silent() { crontab -l 2>/dev/null | grep -v "$BACKUP_SCRIPT" | grep -v "# MemOS自动备份任务" | crontab - } # 移除定时备份任务 remove_cron_job() { log_info "移除MemOS定时备份任务..." if crontab -l 2>/dev/null | grep -q "$BACKUP_SCRIPT"; then remove_cron_job_silent if [ $? -eq 0 ]; then log_success "定时备份任务移除成功" else log_error "定时备份任务移除失败" exit 1 fi else log_warning "未找到MemOS定时备份任务" fi } # 测试备份脚本 test_backup() { log_info "测试备份脚本..." if [ ! -f "$BACKUP_SCRIPT" ]; then log_error "备份脚本不存在: $BACKUP_SCRIPT" exit 1 fi # 执行备份脚本 log_info "执行备份脚本(这可能需要几分钟)..." if "$BACKUP_SCRIPT"; then log_success "备份脚本测试成功" else log_error "备份脚本测试失败" exit 1 fi } # 主函数 main() { echo "⏰ MemOS定时备份设置脚本" echo "========================" # 检查cron服务 if ! check_cron_service; then exit 1 fi # 解析命令行参数 case "${1:-}" in -h|--help) show_help exit 0 ;; -s|--status) show_status exit 0 ;; -i|--install) install_cron_job ;; -r|--remove) remove_cron_job ;; -t|--test) test_backup ;; "") log_info "请指定操作选项,使用 -h 查看帮助" show_help exit 1 ;; *) log_error "未知选项: $1" show_help exit 1 ;; esac } # 运行主函数 main "$@"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/qinshu1109/memos-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server