You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux入门级管理员求助:用CURL定时覆盖上传文件至Dropbox

实现Linux服务器每30分钟自动上传Teamspeak数据库到Dropbox并覆盖

兄弟,我来帮你搞定这个定时自动备份的需求!结合你已经能用curl上传的基础,咱们分三步来实现:

第一步:完善你的curl上传命令

你之前的命令没写完,完整的Dropbox覆盖式上传命令应该是这样的,记得替换里面的占位符:

curl -X PUT https://content.dropboxapi.com/2/files/upload \
  --header "Authorization: Bearer YOUR_DROPBOX_ACCESS_TOKEN" \
  --header "Dropbox-API-Arg: {\"path\": \"/teamspeak_backup.sqlite\", \"mode\": \"overwrite\"}" \
  --header "Content-Type: application/octet-stream" \
  --data-binary @/path/to/your/teamspeak/database.sqlite

几个关键参数说明:

  • YOUR_DROPBOX_ACCESS_TOKEN:换成你自己的Dropbox API令牌(去Dropbox开发者平台创建一个Scoped access应用,勾选files.content.write权限就能生成)
  • "/teamspeak_backup.sqlite":Dropbox里要保存的文件路径和名称,按需修改
  • /path/to/your/teamspeak/database.sqlite:本地Teamspeak数据库的实际路径,比如常见的/var/lib/ts3server/ts3server.sqlitedb
  • "mode": "overwrite":这是实现覆盖现有文件的核心参数,必须加上

第二步:把命令封装成可执行脚本

为了方便定时任务调用,咱们把命令写成shell脚本,比如命名为ts3_dropbox_backup.sh:

  1. 创建脚本文件:
nano ts3_dropbox_backup.sh
  1. 粘贴以下内容,替换好占位符:
#!/bin/bash

# 配置参数
DROPBOX_TOKEN="YOUR_DROPBOX_ACCESS_TOKEN"
LOCAL_DB="/path/to/your/teamspeak/database.sqlite"
DROPBOX_PATH="/teamspeak_backup.sqlite"

# 执行上传命令
curl -X PUT https://content.dropboxapi.com/2/files/upload \
  --header "Authorization: Bearer $DROPBOX_TOKEN" \
  --header "Dropbox-API-Arg: {\"path\": \"$DROPBOX_PATH\", \"mode\": \"overwrite\"}" \
  --header "Content-Type: application/octet-stream" \
  --data-binary @$LOCAL_DB
  1. 给脚本添加执行权限:
chmod +x ts3_dropbox_backup.sh
  1. 手动运行测试一下,确保能正常上传:
./ts3_dropbox_backup.sh

去Dropbox里检查文件是否更新,没问题就可以进入下一步。

第三步:设置crontab定时任务

用Linux的crontab实现每30分钟自动执行脚本:

  1. 打开crontab编辑界面:
crontab -e
  1. 在末尾添加一行(替换成脚本的实际路径,比如/root/scripts/ts3_dropbox_backup.sh):
*/30 * * * * /path/to/ts3_dropbox_backup.sh >> /var/log/ts3_dropbox_backup.log 2>&1

参数解释:

  • */30 * * * *:表示每30分钟执行一次,crontab格式为分 时 日 月 周,*/30代表每30分钟触发
  • >> /var/log/ts3_dropbox_backup.log 2>&1:把脚本的输出和错误信息写入日志文件,方便排查问题,不需要的话可以去掉这部分
  1. 保存退出(nano编辑器按Ctrl+O回车,再Ctrl+X)
  2. 重启crond服务确保生效(部分系统可省略,但做了更稳妥):
sudo systemctl restart crond

这样就完成啦!以后服务器会每30分钟自动把最新的Teamspeak数据库上传到Dropbox并覆盖旧文件,完美实现异地临时备份。

内容的提问来源于stack exchange,提问作者Travis N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:47:12