博文

使用 Syncthing API 监听 NFS 目录同步并自动转换 Nikon RAW 文件

      在之前一篇  尼康Zf的Raw文件在immich以及MT Photos上的问题临时解决方案  中,我试着使用 inotify来监控目录的变化,可惜忽略了目录是NFS挂载的,然后就没有成功监听到文件的变化。幸好syncthing有api可以使用,不过我理想中的方案是希望同步完成后推送通知,然后我执行获取jpg的脚本,可惜目前只能主动去调用api,监听目录的状态,于是修改了下脚本,其中需要额外安装jq,来解析json,API_KEY可以在操作-设置-常规下看到API密钥,目录ID的话在文件夹下可以看到文件夹ID,修改后的脚本如下: #!/bin/bash # 源目录和目标目录 SOURCE_DIR="/mnt/nfs_share/NikonRaw" TARGET_BASE_DIR="/mnt/nfs_share/NikonJpg" # 监听 URL 和配置 SYNC_URL="http://你的syncthing ip+端口/rest/events" API_KEY="你的APIKEY" SINCE_FILE="/root/syncthing_since.txt" LOG_FILE="/root/listen_syncthing.log" FOLDER_ID="你要监听的目录ID" # 读取上次的 SINCE 值 if [ -f "$SINCE_FILE" ]; then     SINCE=$(cat "$SINCE_FILE") else     SINCE=1055 fi SYNCED_FILES=() log() {     echo "$(date '+%Y-%m-%d %H:%M:%S') $1" | tee -a "$LOG_FILE" } debug_log() {     echo "[DEBUG] $(date '+%Y-%m-%d %H:%M:%S') $1" | tee -a "$LOG_FILE" } # 转换函数 convert_to_jpg(...

零刻EQ14搭配8010风扇体验

图片
    零刻EQ14这款迷你主机虽然有自带静音风扇,不过目前在日常10G内存,待机状态下,CPU温度在42度左右,SSD日常在44度左右,对比了下电脑的温控,差了许多。 待机环境 自带风扇+待机     偶然看到某宝有兼容的带8010的底座,于是下单看看效果如何。到货后发现不是完美兼容,螺丝孔对应不上,不过作为底座大小正好,不是特别影响。底座带一根usb线,插上后直接运行。 测试待机下效果还是比较明显的。 8010风扇+待机     忙碌测试用的immich的智能 搜索任务, 其中immich是限制了3核,所以不是满载运行 ,大致结果如下: 自带风扇+immich智能搜索任务 8010风扇+immich智能搜索任务      结果不怎么严谨,总体感觉还行。

利用CloudDrive 、OneDrive迁移Google Photos相册数据到本地NAS

图片
      由于以前一直把相册备份在google photos,现在想整合进当前的相册方案中,于是开始迁移数据,正常情况下原本是想着邮件接收,但是需要消耗某些流量,偶然看到导出时有OneDrive的选项,      想起来office365有附赠1T的空间, CloudDrive正好也支持,于是拿来做中转。在CloudDrive中添加OneDrive,同时添加一个本地的文件夹。等导出结束后,开始移动文件,从OneDrive下载的速度还行,峰值在25m/s左右,能够接受。     下载完成后,如果内容多会分多个压缩包(不是分卷压缩),需要全部解压,我一开始以为是分卷的,解压完发现内容不全。

使用CloudDrive实现123云盘到百度网盘的自动备份

图片
       目前,我主要使用百度网盘和123云盘来备份本地数据。原本的计划是分别将数据上传到两个网盘,以避免其中某个网盘删文件的风险。但是,在使用Duplicati进行加密备份时,发现通过Alist备份到百度网盘的兼容性存在一些问题。妥协后,决定改用其他工具,直接从 123 云盘复制数据到百度网盘。虽然Alist提供了网盘间复制的功能,但只能手动操作,无法实现自动化。于是,我找到了CloudDrive这款工具。     为了方便使用,用的docker安装的 docker run -d \     --name clouddrive \     --restart unless-stopped \     --env CLOUDDRIVE_HOME=/Config \     -v /data/clouddrive:/CloudNAS:shared \     -v /data/clouddrive_config:/Config \     --network host \     --pid host \     --privileged \     --device /dev/fuse:/dev/fuse \     cloudnas/clouddrive2      安装完成后,添加两个网盘,然后添加备份任务,选择源文件夹和目标文件夹(支持多个)。最初,我在本地测试了备份流程,但由于 CloudDrive 运行时会占用本地带宽,因此想到可以将其部署到 VPS 上,数据都在云端,程序只是作为中转。     正好有台相对空闲的 阿里云 200M 轻量应用服务器,于是拿来进行测试。测试数据量大约35GB,起初下行带宽可以稳定跑满。但在复制到30GB 左右时,开始限速,速度降到一半以下,而上行带宽保持不变,整体仍可接受。第二天测试速度已经恢复。     看了下能够完整复制,就是整体的UI不够美观,不过不影响使用 。不过配置定时任务...

利用脚本与LaunchAgent自定义Time Machine备份时机

     原本我设置了每小时自动备份,但因为一直开着 ZeroTier 并与家里路由器打通,结果在公司也会自动进行备份,网络速度极其缓慢,还长时间占用带宽。想通过自定义时间来控制备份,但默认选项并不支持。于是我打算写个脚本自动运行,最初想通过判断当前的 Wi-Fi 网络来识别环境,但发现 wdutil 需要 sudo 权限才能执行,操作较为麻烦。最终只能改用“时间 + IP 段”的方式来控制备份,设置成一个不常用的 IP 段,避免误触发。这样既能保留自动化,又能在公司网络环境下避免被动触发大流量的备份操作。     首先把Time Mechine设置为手动,然后新建一个timemechine.sh,内容如下 #!/bin/zsh # 如果你更习惯 bash,就把 #!/bin/zsh 改成 #!/bin/bash # 1) 获取 en0 接口的 IP #    如果你的网络接口不是 en0,可以改成 en1、en6 等实际接口名 IP=$(ipconfig getifaddr en0) # 2) 获取当前时间,格式为 HHMM,例如 18:41 => 1841 CURRENT_TIME=$(date +%H%M) # --- (可选)先检测 Time Machine 是否正在备份中 --- backup_status=$(tmutil status | grep "Running = 1;") if [ -n "$backup_status" ]; then     echo "Time Machine 备份已在进行中,跳过此次触发。"     exit 0 fi # 3) 判断 IP 是否在 192.168.50.* 网段 if [[ "$IP" == 192.168.50.* ]]; then     # 4) 判断时间是否在 18:40 (1840) 到 21:20 (2120) 之间     if [ "$CURRENT_TIME" -ge 1840 ] && [ "$CURRENT_TIME" -lt 2120 ]; then         e...

使用Duplicati加密备份到天翼云盘和123pan

图片
            之前我的备份需求主要是存储一些不太重要的文件,所以直接备份到网盘,没有进行加密管理。然而,随着需要备份的文档增多,我开始寻找更安全、便捷的解决方案。      初步尝试:Rclone 与 GUI 操作      最开始,我尝试了 Rclone,它是一款功能强大的命令行工具,支持多种云存储,但由于操作需要命令行输入,虽然有 Web 端,但我没有找到便捷的备份配置界面,因此放弃了这一方案。 Rclone GUI      经过筛选,我找到了 Duplicati,它支持 Docker 运行,并且具有友好的 Web 界面,符合我的需求。我的部署命令如下: docker run -d --name=duplicati -p 8200:8200 -v /mnt/config/duplicati:/data -v /mnt/pve:/mnt/pve duplicati/duplicati -v /mnt/config/duplicati:/data :用于存储 Duplicati 配置文件,方便迁移。   -v /mnt/pve:/mnt/pve :映射本地需要备份的目录,可额外添加。      运行后,使用   docker logs duplicati   查看日志,获取访问地址(默认   localhost:8200 ,可修改为对应 IP)。访问后,首先设置管理密码,随后便可开始配置备份。      备份至网盘:天翼云盘 vs 123pan      由于我的天翼云盘是通过 Alist挂载的,因此存储类型选择WebDAV,并填写对应的账号信息。服务器路径需要以   /dav/   开头,可以先测试连接是否正常。 源数据目录 : /mnt/pve 过滤条件 :可设置需要排除的文件 计划任务 :每天凌晨 2 点执行备份 远程卷大小 :根据网盘上传大小限制调整 保存策略 :我选择的是 永久保留       ...

飞牛私有云OS使用百度网盘、天翼云盘双向备份对比

图片
      原本一直用的百度网盘来备份照片及数据库,用着还行,但是最近想把几个pve的虚拟机也备份下,然后遇到了文件过大的问题,就找来了天翼云盘对比下,其实看了很多云盘,但是单文件大小限制就排除了绝大部分。下面使用百度和天翼作为简称,百度开的是svip,天翼开的是铂金会员。     价格:官方价格就不考虑了,从某鱼或者其他优惠渠道比的话,天翼比百度便宜些。     容量:排除赠送的,百度会随着等级增加,最多是30T;天翼错过了赠送,会员只有8T,而且是拆分成个人4T,家庭4T,不过手机上传照片是无限容量,占用8T空间(目前使用量没到,无法测试)。     网络:本地网络为电信下行1000m,上行50m,百度其实还有个NAS会员,我的账号只是svip。两者基本都能跑满上行,天翼波动小点。下行的话差距比较明显,天翼基本能稳定在50MB/s的水平,百度只有10MB/s左右。 本地备份到天翼1 本地备份到天翼2 本地备份到百度1 本地备份到百度2 天翼备份到本地1 天翼备份到本地2 百度备份到本地1 百度备份到本地2     限制:按飞牛官方的反馈是百度单文件限制为4G,但是我的账号是svip的,按理是20G的,不知道是哪里的问题,由于当前测试的是备份功能中的百度,于是我再测试了下应用中心内的百度网盘,确实可以上传大于4G的文件,没开NAS会员的话只能上传至指定目录,svip的单文件大小是300G,能跑满上传带宽。另外用飞牛模型测试上传的时候是秒传的,一些公共文件上传还行,不过我基本是用于自己的文件,所以不怎么享受到这个功能。此外还测试了Alist挂载百度网盘,稍微大点的文件就会备份失败,可能是我配置的问题。 本地上传至应用中心-百度网盘1 本地上传至应用中心-百度网盘2     所以飞牛NAS中备份和应用中的百度网盘是两种权限逻辑,我需要的是备份,应用中心内的只有同步和主动上传下载,不符合我的需求。 天翼这边目前没有碰到文件大小限制。关于大小限制的话,可以通过分卷压缩解决,不过增加了复杂度。     总结,百度目前胜在容量上,备份中单文件限制4G,应用中心内的可以突破4G限制,svip的话是300G,NAS会员的话是2T,虽然...