1. 首页
  2. 帮助中心
  3. 用户手册
  4. GSYNC 命令行

用户手册 · GSYNC 命令行

GSYNC 是 GoodSync 的命令行版本 — 完全无 GUI,理想用于从批处理脚本与其他程序调用,也是 Linux 环境的标准版本。Windows 与 Mac 上 GSYNC 在 Personal 或更高级别 license 下可用。

概述

GSYNC 在指定 Job 或操作完成前不会退出。GSYNC 按命令行中给定的顺序顺序运行所有 Job。

运行 Job 的命令行格式:

gsync [<profile-option>...] [<run-option>...] [<global-option>...] <job-command and job-option>

执行操作(非 Job 运行)的命令行格式:

gsync [<profile-option>...] <global-command>

日志文件写入 stdout。

NOTE:选项的顺序是强制的。例如 — Job 选项不能与 Global 选项混排,Global 选项不能在 Profile 选项之前。

License 激活

使用以下命令行选项激活 GSYNC license。这是在 Linux 上激活 GoodSync 的唯一方式(Linux 没有 GUI 版本)。

/activate
用本机的 GoodSync Account 在本机激活 GoodSync license。
NOTE:这是在线激活 — GoodSync 必须能访问 mediator.goodsync.com
默认使用标准浏览器代理。可通过下方 Proxy 章节调整代理认证或使用替代代理。

Profile 与 Logging 选项

Profile 选项设置 GoodSync Profile 文件夹(账户与 Job 所在)以及日志保存位置。

/profile=<folder-path>
GoodSync profile 文件夹。账户、Job、Group、Program Options 都从此文件夹的 accounts-bookmarks.ticjobs-groups-options.tic 加载。Global Log 文件也写入此 profile 文件夹。
未指定时 — Windows 默认 C:\Users\UserName\AppData\Roaming\GoodSync,Mac/Linux/UNIX 默认 ~/.goodsync
/lf=<log-folder>
把全局日志写到 <log-folder>。未指定时写入 profile 文件夹。路径应为本机绝对路径。
/ll=0|1|2|3|9
设置本次运行的日志级别:
  • 0 — 关键消息(Job 启动与停止)
  • 1 — 错误消息
  • 2 — 信息消息(默认)
  • 3 — 详细消息
  • 9 — 完全无日志
/jobs-file=<job-list-file>
指定时 — 从指定 TIC 或 TIX 格式的文件加载 Job 列表与 Global 选项(按文件扩展名)。
指定时 — 应为 Profile 与 Logging 选项中的最后一项
未指定时 — 从 profile 文件夹的 jobs-groups-options.tic 加载。
/no-load-tic
指定时 — 不从 profile 文件夹加载 Job、Group 与 Program 选项 — 而用 job-tmp 命令在命令行构建并运行 Job。
指定时应为 Profile 与 Logging 选项中的最后一项。设置环境变量 NOLOADTIC=1 可达到相同效果。
/no-save-tic
指定时 — GSYNC 修改后不把 Job、Group 与 Program 选项保存回 profile 文件夹。
指定时应为 Profile 与 Logging 选项中的最后一项。设置环境变量 NOSAVETIC=1 可达到相同效果。

Run 选项

/progress=yes|no
下载或上传文件时显示进度消息(默认 no)。
/noprint=yes|no
解析后不打印命令行参数。
/no-log-stamp
不为每行日志添加时间戳。
/list-changes=yes|no
把 Analyze 检测到的变更列表打印到日志。
/cleanup=yes|no
GSYNC 启动时清理旧日志与临时文件。「旧日志」指超过日志保留天数的文件。
在本机没有其他 GoodSync 或 GSYNC 进程运行时使用此选项 — 它会删除所有符合条件的日志与临时文件,包括其他正在运行的 GoodSync 实例的。
/override-locks=yes|no
Analyze 时覆盖锁文件(默认 no)。同步运行 Job 时同步文件夹中会创建锁文件,Job 完成时删除 — 当锁文件存在时,涉及该文件夹的另一同步将不会启动。
/comp-cksums=yes|no
Analyze 时比较文件校验和 — 会显著拖慢 Job 执行。
/comp-bodies=yes|no
Analyze 时比较文件主体 — 会非常显著拖慢 Job 执行。

Global 命令

/help
显示列出命令行选项的帮助消息并退出。
/version 或 /license
打印版本与 license 详情并退出。
/check-ver
检查当前 GSYNC 版本是否最新。

GoodSync Account

/gs-account-enroll=Email
把本机注册到 Email 标识的 GoodSync Account。控制台会请求账户密码。账户由 Mediator 验证 — 账户变更后 gs-server(GoodSync Server)服务会重启。
/manage-account
在默认浏览器中打开管理 GoodSync Account 的在线页面。
/buy-license
在默认浏览器中打开购买 GoodSync license 的页面。
/activate
用本机的 GoodSync Account 在本机激活 GoodSync license。
/runner
作为本地 Job Runner 运行 — 模拟 GoodSync GUI 处理 Auto Job 的行为:
  • 启动并运行所有处于 Auto 模式的 Job — 例如「On File Change」Job。
  • 不显示任何 GUI — Job 结果通过 Global 与 Job 日志显示。
  • 不消耗任何图形资源 — 作为纯命令行进程运行。
  • 终止 GSYNC Runner — 向其控制台发送 CTRL+C。
  • 未指定 /runner 时 — 适用常规 GSYNC 选项。
/cc-runner
作为 Control Center Job Runner 运行。详见 Control Center 管理员指南

Server Accounts 与 Account Sync

/sync-jobs-accts
在本客户端与 GoodSync Account(Mediator 上的中央 Job 仓库)之间同步 Job、Group、选项与 Server Accounts。
/sa-list [prefix]
列出所有 Server Account。指定 prefix 时仅列出以该 prefix 开头的。
/sa-create ConnectOptions
创建新 Server Account 并填入 ConnectOptions。
示例:/sa-create /f=sftp://server.company.com /userid=myuser /pk="d:/keys/priv.key"
/sa-oauth
执行浏览器认证(OAuth2)— 得到的 Refresh 与 Access Token 添加到 Server Account Manager(按从 OAuth 数据提取的 UserID)。打印出 Server Account Key 供 Job 选项使用。仅需 URL 前缀即可指示文件系统 — 如 gdrive://msgraph://
/sa-update AcctKey/AcctName ConnectOptions
用新 Connectoid 选项更新由 AccountKey/AccountName 指定的 Server Account。
示例:/sa-update sftp://myuser@server.company.com /f=sftp://server.company.com /userid=myuser /pk="d:/keys/priv.key"
/sa-rename AcctKey/AcctName NewAcctName
把 Server Account 重命名为 NewAcctName。
示例:/sa-rename sftp://myuser@server.company.com "Company SFTP account"
/sa-delete AcctKey/AcctName
按 Key 或 Name 删除 Server Account。
示例:/sa-delete "Company SFTP account"

Global 选项

这些命令修改 GoodSync GUI 的 Program Options(Windows 在 Tools → Program Options,Mac 在 GoodSync → Preferences)。

General(常规)

/sort-jobs-alpha=yes|no
在 Job List 视图中按字母排序 Job(默认 yes)。
/system-tray=yes|no
在系统托盘显示 GoodSync 图标(仅 Windows,默认 yes)。
/tray-on-close=yes|no
关闭应用时最小化到系统托盘(仅 Windows,默认 no)。
/compare-prog=<file-path>
用 FilePath 指定的程序进行 diff 风格的文件比较。未指定时使用 UNIX diff。
/warn-time-range=yes|no
文件/文件夹修改时间超出范围时警告(默认 no)。
/group-log-lines=yes|no
合并相似日志行(默认 yes)。
/log-retain-days=<number>
旧日志保留天数 — 超过的删除(默认 7)。

Auto

/auto-hide-mini-win=yes|no
无 Job 活动时自动隐藏 Mini Mode 窗口(仅 Windows,默认 yes)。
/months-old-gens=<number>
项目代际历史保留月数。
/parallel-auto-jobs=<number>
并行运行的 Auto 模式 Job 上限(默认 1)。
/auto-jobs-quant=<number>
启动 Auto Job 所用的 quant 秒(默认 3)。
/encrypted-passwords
本地加密保存连接密码。

Filters(全局过滤器)

/exclude=<file-mask>
Exclude Filter。File Mask 为以「|」分隔的模式列表(如 *.obj\folder\file)。可提供多个 /exclude — 它们的值会用「|」拼接。
/include=<file-mask>
Include Filter。同上。
/exclude-empty=yes|no
从 Job 中排除空文件夹。
/exclude-hidden=yes|no
从 Job 中排除隐藏文件与文件夹。
/exclude-system=yes|no
从 Job 中排除系统文件与文件夹。

SMTP

/smtp-host=hostname
用此处设置的 IP 名称或地址作为 SMTP 服务器发送 post-Analyze 与 post-Sync 邮件。
/smtp-port=port
SMTP 服务器端口。
/smtp-secure=yes|no
提交邮件到 SMTP 服务器时使用 SSL 加密连接。
/smtp-starttls=yes|no
提交邮件到 SMTP 服务器时用 STARTTLS 切换到加密连接。
/smtp-userid=<userid>
SMTP 服务器 UserID。
/smtp-passwd=<password>
SMTP 服务器 Password。
/smtp-sender=<name-email>
邮件发件人 — "email@company.com""FirstName LastName <email@company.com>"

Proxy

/proxy-auto=yes|no
使用 WinInet 代理(即 Internet Explorer 使用的)。
/proxy-host=hostname
用此处设置的 IP 名称或地址作为代理服务器 — 否定 /proxy-auto 选项。
/proxy-port=port
代理服务器端口。
/proxy-userid=<userid>
认证代理的 UserID。
/proxy-passwd=<password>
认证代理的 Password。

Job 命令

analyze /all
分析所有 Job。
analyze <job list>
分析所列 Job — Job 名称用空格分隔。包含空格的 Job 名称必须用引号包围:"Job Name"
sync /all
分析并同步所有 Job。
sync <job list>
分析并同步所列 Job — Job 名称用空格分隔。包含空格的名称需用引号包围。
job <job name> [<job options>]
创建或更新 Job。
job-new <job name> [<job options>]
用指定 Job 选项创建新 Job。
job-tmp <job name> [<job options>]
创建带指定选项的临时 Job 并 Analyze/Sync — 该 Job 不加入 Job 列表,仅在执行期间存于内存。
job-update <job name> [<job options>]
更改现有 Job 的指定选项。
job-delete <job name>
删除现有 Job。
job-list
列出所有可用 Job。

Job 选项

/analyze
Job 创建或更新后执行 Analyze。
/sync
Job 创建或更新后执行 Analyze + Sync。
/autoclear
Auto 模式下 — Sync 成功或 Analyze 无变更后移除 Sync Tree。

Connectoid 选项(连接属性)

Connectoid 选项表示 GoodSync 与任何受支持文件系统(服务器)连接的属性 — 如 URL、UserId、Password。三种侧别相关格式(以 /f 为例):

  • /f=URL — 用于 /sa-.. Server Account 命令的 Connectoid 选项 /f(URL)。
  • /f1=URL — Job 命令中 Job 左侧的 Connectoid 选项 /f(URL)。
  • /f2=URL — Job 命令中 Job 右侧的 Connectoid 选项 /f(URL)。

URL 与 Server Account 选项的正确组合:

  • /f=URL — 完整文件夹 URL — 不在 Server Account 中查找。
  • /n=AccountName /uN=URL — Server Account + InAccount URL — 按 AccountName 在 Server Account Manager 中查找。
  • /k=AccountKey /uN=URL — Server Account + InAccount URL — 按 AccountKey 查找。

完整 Connectoid 选项列表

/f1=<URL> /f2=<URL>
左/右同步文件夹路径。示例:
file:///C:/folder1/folder2
file://share/disk/folder1/folder2
ftp://server.domain.com:port/folder
sftp://server.domain.com:port/folder
http://server.domain.com:port/folder
合适的 URL 格式见 文件系统章节
NOTE:含空格的路径用引号包围。
/u1=<account URL> /u2=<account URL>
Server Account 的左/右侧 URL(用 Server Account Manager 保存)。示例:/u1="gdrive://www.googleapis.com"
/k1=<AccountKey> /k2=<AccountKey>
左/右同步文件夹的 Server Account Key — 需配合 /uN示例:/k1="gdrive://XDH1ABxaxXFmpUk3PJA@www.googleapis.com-n1"
/n1=<AccountName> /n2=<AccountName>
左/右 Server Account 的 Name — 需配合 /uN示例:/n2="DropboxAcct"
/d1=<folder path> /d2=<folder path>
Server Account 的左/右侧文件夹路径 — 需配合 /kN/nN示例:/d2="/Work/Projects"
/userid1=<userid> /userid2=<userid>
左/右同步文件夹的 UserID。
/password1=<password> /password2=<password>
左/右同步文件夹的 Password。
/time-trans1=yes|no /time-trans2=yes|no
无法复制/设置文件修改时间时使用时间转换。
/bad-certs1=yes|no /bad-certs2=yes|no
左/右侧不检查 SSL 服务器证书。
/useproxy1=yes|no /useproxy2=yes|no
左/右侧使用代理。
/wininet1=yes|no /wininet2=yes|no
DAV、S3、FTP 在左/右侧使用 WinInet 而非原生 socket。
/utf8-1=yes|no /utf8-2=yes|no
左/右侧文件名编码使用 UTF-8(no = ANSI)。
/temp-dest-file1=yes|no /temp-dest-file2=yes|no
左/右侧复制文件时使用临时文件。
/hostbased1=yes|no /hostbased2=yes|no
左/右侧使用 Host Based Addressing(S3)。
/reduced-redundancy1=yes|no /reduced-redundancy2=yes|no
左/右侧使用 Reduce Redundancy(S3)。
/server-encrypt1=yes|no /server-encrypt2=yes|no
左/右侧使用 Server Side Encryption(S3)。
/accesspolicy1=<policy> /accesspolicy2=<policy>
左/右侧使用指定的 Access Policy(S3)。
/aws4-auth1=yes|no /aws4-auth2=yes|no
左/右侧使用 AWS V4 认证(S3)。
/show-native1=yes|no /show-native2=yes|no
显示原生 Google Docs/Drive 文件(GDocs,转换为外部格式)。这会让 Analyze 与 Sync 变慢 — 因为 Analyze 一个原生文件也需要转换。
/active1=yes|no /active2=yes|no
左/右侧使用主动 FTP 模式(no = 被动)。
/mdtm1=yes|no /mdtm2=yes|no
FTP 在左/右侧使用 MDTM 命令。
/mlsd1=yes|no /mlsd2=yes|no
FTP 在左/右侧使用 MLSD 命令。
/implicit1=yes|no /implicit2=yes|no
FTPS 在左/右侧使用隐式模式(no = 显式)。
/listla1=yes|no /listla2=yes|no
FTP 在左/右侧使用 LIST -la 命令进行列出。
/move-level-only=yes|no
FTP 的 MOVE 命令仅在一个文件夹层级生效。
/tls-sess-reuse=yes|no
FTPS 要求左/右侧 TLS 会话复用。
/pk1=<file-path> /pk2=<file-path>
SFTP 私钥文件的绝对路径(左/右侧)— 也用于 WebDAV/GSTP 的私钥证书文件。
/can-otp1=yes|no /can-otp2=yes|no
左/右侧使用 OTP 一次性密码认证(GSTP,非持久)。
/otp1=value /otp2=value
左/右侧收到的 OTP 值(GSTP,非持久)。

General 选项(常规)

/dir=2way | ltor | rtol
Job 方向:双向、左到右(ltor)或右到左(rtol)。
/deletions=yes|no
传播删除选项。
/fast-1way=yes|no
Fast 1-way NoState NoLock 模式。
/create-if-not-found=yes|no
同步文件夹未找到时创建(默认 no)。
/balloon-msg=none|errors|changes
气泡消息显示选项。
/save-prev-version=yes|no
把被 GoodSync 覆盖或删除的文件保存到 _gsdata_\_saved_ 文件夹 — 仅保存最近一个版本。
/cleanup-prev-version=yes|no
是否清理前一文件版本。
/days-prev-version=<number>
保留前一文件版本的天数。
/save-past-versions=yes|no
把过去版本保存到 _gsdata_\_history_ 文件夹 — 每次覆盖或删除都保存一个版本。
/cleanup-past-versions=yes|no
是否清理过去文件版本。
/days-past-versions=<number>
保留过去文件版本的天数。
/reconnect-secs=<number>
重连尝试秒数。
/run-parallel-threads=yes|no
Sync 时并行运行 worker 线程。
/worker-threads=<number>
Sync 时并行执行的 worker 线程数。
/speed-limit=<number>
文件复制速度限制(KB/sec)。

Filters(Job 过滤器)

Job Filter 选项与 Global Filter 选项相同:/exclude/include/exclude-empty/exclude-hidden/exclude-system。详见上方 Global 选项 部分。

Auto(自动触发)

/on-file-change=analyze|sync|no
本地同步文件夹内任何文件变化时自动 Analyze/Sync。
/onfilechange-delay=<number>
/on-file-change 选项的延迟秒数。
/on-folder-connect=analyze|sync|no
文件夹连接时自动 Analyze/Sync。
/on-start=analyze|sync|no
GoodSync 启动时自动 Analyze/Sync。
/autostart-delay=<number>
启动时延迟秒数。
/on-timer=analyze|sync|no
按定时器(每 N 分钟,由 /timer-period 设置)自动 Analyze/Sync。
/timer-period=<number>
/on-timer 的定时器周期(分钟)。
/on-logout=sync|no
从 Windows 账户登出时自动同步。
/on-schedule=analyze|sync|no
按计划自动同步。
/schedule-min=list-of-number-ranges (0 to 59)
/on-schedule 中运行的分钟数。
/schedule-hour=list-of-number-ranges (0 to 23)
/on-schedule 中运行的小时。
/schedule-day=list-of-number-ranges (1 to 31)
/on-schedule 中运行的月日。
/schedule-month=list-of-number-ranges (1 to 12)
/on-schedule 中运行的月份。
/schedule-dow=list-of-number-ranges (0=Sun to 6=Sat)
/on-schedule 中运行的星期几。
/auto-unattended=yes|no
无 GUI 运行 Job(Unattended)。
/limit-changes=<number>
变更文件过多时不同步(0–100)。
/wait-for-locks=yes|no
等待锁文件而非报错。
/wait-for-locks-minutes=<number>
Wait for Locks 等待分钟数。
/autoclear=yes|no
Sync 后自动清除 Sync Tree。

Conflict Resolving(冲突解决)

/resolve-weak-conflicts=yes|no
自动解决弱冲突(一侧无项目代际时)。
/autoresolve=no|left|right|newer
自动解决冲突:Do Not Copy / 左侧胜 / 右侧胜 / 较新者胜。
/rename-losing-file=yes|no
冲突中重命名失败方文件而非删除。

Script(脚本)

/pre-analyze-action=<email-addr|program-path>
Pre-Analyze 邮件地址或程序路径。
/post-analyze-action=<email-addr|program-path>
Post-Analyze 邮件地址或程序路径。
/post-sync-action=<email-addr|program-path>
Post-Sync 邮件地址或程序路径。

Advanced — Sync Time(同步时高级)

/copy-create-time=yes|no
复制文件/文件夹创建时间。
/copy-attrs=yes|no
复制属性(如 rwxrwxrwx)。
/copy-ext-attrs=yes|no
复制扩展属性(仅 Mac)。
/copy-owner=yes|no
复制文件 Owner — 若已开启 Copy ACL 则不需要。
/copy-acl=yes|no
复制 ACL 安全属性。
/move-mode=yes|no
Move Mode — Copy 后删除源文件。
/delete-empty-folders-on-move=yes|no
Move Mode — Copy 后删除空源文件夹。
/copy-locked=yes|no
用 Windows Shadow Copy 服务复制锁定文件(仅 Windows)。
/uber-unlocked=yes|no
读取文件的 Uber-unlocked 模式。
/copy-original-fs-names=yes|no
不更改禁止字符(仅在 Mac→Mac Job 上工作良好)。

Advanced — Analyze Time(分析时高级)

/compare-md5=yes|no
Analyze 时比较所有文件的 MD5 校验和。
/detect-moves=yes|no
检测文件与文件夹的移动与重命名(而非「Copy + Delete」)。
/est-req-space=yes|no
估算 Sync 所需的可用空间。
/links=ignore|copy-asis|drill-down
文件夹符号链接处理模式。

Left / Right Folder(左右文件夹选项)

/compare-checksums1=yes|no /compare-checksums2=yes|no
左/右侧需要时比较校验和。
/compare-ext-attrs1=yes|no /compare-ext-attrs2=yes|no
左/右侧比较扩展属性。
/compare-attrs1=yes|no /compare-attrs2=yes|no
左/右侧比较属性。
/compare-owner1=yes|no /compare-owner2=yes|no
左/右侧比较 Owner。
/compare-acl1=yes|no /compare-acl2=yes|no
左/右侧比较 ACL。
/no-gsdata1=yes|no /no-gsdata2=yes|no
左/右侧无 _gsdata_ 文件夹。
/no-listdir1=yes|no /no-listdir2=yes|no
左/右侧不列出目录(信任 state 文件)。
/temp-dest-file1=yes|no /temp-dest-file2=yes|no
左/右侧用临时文件复制。
/compress-type1=no|plain|deflate /compress-type2=no|plain|deflate
左/右侧压缩文件主体的方法。
/cipher-type1=no|zipcrypto|aes-256 /cipher-type2=no|zipcrypto|aes-256
左/右侧加密文件主体的方法。
/encrypt-files1=yes|no /encrypt-files2=yes|no
左/右侧加密文件主体。
/encrypt-paths1=yes|no /encrypt-paths2=yes|no
左/右侧加密文件路径。
/encrypt-password1=str /encrypt-password2=str
左/右侧加密密码。
/fat-like1=yes|no /fat-like2=yes|no
左/右侧为类 FAT 文件系统。
/compress1=yes|no /compress2=yes|no
左/右侧用 NTFS 压缩文件。
/uncompress1=yes|no /uncompress2=yes|no
左/右侧用 NTFS 解压文件。

Return Codes(返回码)

GSYNC 返回最后运行 Job 的 Return(Exit)Code:

  • 0 — 正常完成:Analyze 无变更或 Sync 成功。
  • 1 — Analyze 未完成:用户停止。
  • 2 — Analyze 未完成:Terminal 错误(如同步文件夹不存在)。
  • 3 — Analyze 完成但有非 terminal 错误(可能也有冲突)。
  • 4 — Analyze 完成有冲突但无错误。
  • 11 — Sync 未完成:用户停止。
  • 12 — Sync 未完成:Terminal 错误。
  • 13 — Sync 完成但有非 terminal 错误(可能也有冲突)。
  • 14 — Sync 完成有冲突但无错误。
  • 负数 — 启动 GSYNC 时出错。

非 terminal 错误不返回错误码 — 它们记录到日志文件中。

TIX:可读的 Job 描述符

GoodSync 可以以名为 TIX 的类 XML 文本格式导出、导入、写入与读取 Job 列表。

使用 Tools → Export All JobsTools → Export Selected Jobs 导出 Job 到 .TIX 文件(Mac 仅有 GoodSync → Export All Jobs)。

使用 TIX 的好处:

  • 自动化:程序无需启动 GoodSync GUI 即可生成 GoodSync Job。
  • 归档:可读、可打印的 Job 列表备份格式。

TIX 文件包含全部 GoodSync 设置:

  • Program Options
  • Server Account 列表(用于 Server Account Manager)
  • Job 列表
  • Group 列表

典型 TIX 文件示例:

<GoodSyncSettings>
ProgOptions = <ProgramOptions>
GlobalFilterIncluded = <FileMask>
Matches = ( ) </FileMask>
GlobalFilterExcluded = <FileMask>
Matches = (
    "name *._gstmp"
    "/System Volume Information"
    "Thumbs.db"
    ".DS_Store"
) </FileMask>
  WarnAboutTrayOnClose = Yes
  SaveMonthsOldGens = 12
  InstallNewVersion = No
SmtpServer = <SmtpServer>
    Host = "mail.com"
    Port = 465
    UserID = "user"
    PasswordEncrd = "password-garbled"
    SecureSSL = Yes
    SenderEmail = "user@mail.com"
</SmtpServer>
ProxyServer = <ProxyServer> Port = 3128 </ProxyServer>
AutoJobQuantSec = 3
</ProgramOptions>
ServerAccounts = <AccountManager>
Servers = { | <ServerAcct>
  Key = "gdrive://user@www.googleapis.com"
Conn = <Connect> </Connect>
ServerBmks = {
| <AcctBmk>
  Url = "gdrive://www.googleapis.com/dir-1"
  Opts = <FolderOptions> </FolderOptions>
</AcctBmk>
| <AcctBmk>
  Url = "gdrive://www.googleapis.com/Dir-B"
  Opts = <FolderOptions>
    EncryptFiles = Yes
    EncryptPaths = Yes
    EncryptionPassword = "..."
</FolderOptions>
</AcctBmk>
} </ServerAcct>
... (more accounts) ...
</AccountManager>
Jobs = {
| <Job>
Name = "My Job Name"
Side1 = <SideOptions>
  Conn = <Connect>
    Url = "file:///D:/test/FTP"
  </Connect>
  AcctKey = "file://@"
  AcctUrl = "file:///D:/test/FTP"
</SideOptions>
Side2 = <SideOptions>
  Conn = <Connect>
    Url = "ftp://ftp.company.com/folder"
    UserID = "user"
    PasswordEncrypted = "alshjdkasjhd/s="
  </Connect>
  AcctKey = "ftp://mdpro@quickdesigner.mk-group.com"
  AcctUrl = "ftp://quickdesigner.mk-group.com/USImages"
</SideOptions>
Direction = 1
PropagateDeletions = No
SavePreviousVersion = No
CleanupPreviousVersion = No
FiltersExcluded = <FileMask>
Matches = (
  "*.jpg"
  "*.docx"
  "*.zip"
  "*.txt"
  "*.xml"
) </FileMask>
ExcludeHidden = Yes
ExcludeSystem = Yes
LimitChangesPercent = 100
AutoResolveConflicts = 1
CopyCreateTime = Yes
CopyLockedFiles = No
RetrySyncIfFileChanges = Yes
DetectMovesAndRenames = Yes
LinksOption = 1
</Job>
... (more jobs) ...
}
Groups = {
| <Group>
  Name = "MyGroup"
  JobsInGroup = {
 | "Job 1"
 | "Job 2"
 | "Job N"
 } </Group>
... (more groups) ...
} </GoodSyncSettings>

TIX 文件 vs 注册表:由谁决定

以下注册表值控制 Job 列表与 Program 选项的加载/保存格式与来源 — 取自注册表键 HKEY_CURRENT_USER\Software\Siber Systems\GoodSync,类型为 DWORD:

  • JobsLoadRegistry = 1 — 以 TIX 格式从注册表值加载/保存 Job 列表与 Program 选项。
  • JobsLoadRegistry = 0 — 从 jobs.tix 文件加载/保存 Job 列表,从 options.tix 加载 Program 选项(默认)。

若选择从注册表加载/保存 Job 列表 — 使用注册表值 HKEY_CURRENT_USER\Software\Siber Systems\GoodSync\Jobs\job-name\tix。每个 Job 有自己的注册表键,键内名为 tix 的值包含描述该 Job 的 TIX 字符串(无换行符)。

通用规则

  • 换行符可用于提升可读性 — 但非必需。
  • 每个属性记录为 name = value — 值可以是单一常量、对象括号内的对象,或形如 (element1 element2 ... elementN) 的列表。
  • 布尔常量可写为 YesNoTF
  • 字符串写为 "text"(必须双引号)。
  • 字符串内的特殊字符表示:\n 换行;\\ 反斜杠;\" 双引号;\NNN; 十进制码 NNN 的非可打印字符。

Job 属性(在 <Job>...</Job> 括号内)

General

Name = "Job Name"
Side1 = <SideOptions> SiberOptions </SideOptions>
Side2 = <SideOptions> SiberOptions </SideOptions>
Direction = 0 双向 | 1 左到右 | 2 右到左
PropagateDeletions = Yes | No
ShowBalloon = 0 Never | 1 On Errors | 2 On Errors and Info
SavePreviousVersion = Yes | No
SaveDaysPreviousVersion = Ndays
CleanupPreviousVersion = Yes | No
SavePastVersions = Yes | No
SaveDaysPastVersions = Ndays
CleanupPastVersions = Yes | No
CleanupOldGenerations = Yes | No
SaveMonthsOldGens = Nmonths
ReconnectSeconds = Nseconds
SyncParallelThreads = Yes | No
DeleteEmptyFoldersMove = Yes | No
WorkerThreads = Nthreads
SpeedLimit = number
UpSpeedLimit = number
LimitRunTime = Yes | No
MaxTimeToRun = Nminutes
ShutdownAfterRun = Yes | No

Filters

ExcludeEmptyFolders = Yes | No
ExcludeHidden = Yes | No
ExcludeSystem = Yes | No
FiltersIncluded = Matches <FileMask> ( "string" ... ) </FileMask>
FiltersExcluded = Matches <FileMask> ( "string" ... ) </FileMask>

Auto

OnFileChangeAction = 0 No | 1 Analyze | 2 Analyze and Sync
OnFileChangeDelay = Nseconds
OnFolderConnectAction = 0 | 1 | 2
OnStartAction = 0 | 1 | 2
AutoStartDelay = Nseconds
OnTimerAction = 0 | 1 | 2
TimerIntervalHours = Nhours
TimerIntervalMinutes = Nminutes
OnLogoutAction = 0 No | 2 Analyze and Sync
LimitChangesPercent = Npercent
AutoResolveConflicts = 0 disable | 1 LtoR | 2 RtoL | 3 Newer Wins
WaitForLock = Yes | No
WaitForLocksMinutes = Nminutes
AutoClearTree = Yes | No

Scripts

PreAnalyzeScriptOrEmail = "string"
PostAnalyzeScriptOrEmail = "string"
PostSyncScriptOrEmail = "string"

Advanced

CopyCreateTime = Yes | No
CopyAttrs = Yes | No
CopyExtendedAttrs = Yes | No
CopyACL = Yes | No
CopyOwner = Yes | No
CopyLockedFiles = Yes | No
UberUnlockedUpload = Yes | No
CompareMD5crc = Yes | No
DetectMovesAndRenames = Yes | No
EstimateRequiredSpace = Yes | No
LinksOption = 0 Ignore | 1 Copy As Is | 2 Drill Down
RenameLosingFile = Yes | No

Folder 属性(在 <FolderOptions>...</FolderOptions> 内)

CompareCheckSums = Yes | No
CompareAttrs = Yes | No
CompareOwner = Yes | No
CompareACL = Yes | No
NoGsData = Yes | No
NoListDirTrustStateFile = Yes | No
Compress = Yes | No
Uncompress = Yes | No
FatLike = Yes | No

Connectoid 属性(在 <Connect>...</Connect> 内)

GoodSync connectoid 描述如何连接到服务器:

Url = "string"
UserID = "string"
PasswordEncrypted = "string"
DisplayName = "GoodSync string"

Utf8 = Yes | No (所有服务器文件系统)
UseProxy = Yes | No (所有服务器文件系统)
BadCerts = Yes | No
PrivateKey = "file-path"
WinInet = Yes | No (仅 DAV)
UploadChunksThreads = Nthreads

ActiveMode = Yes | No (仅 FTP)
UseMDTM = Yes | No (仅 FTP)
UseLISTla = Yes | No (仅 FTP)
ImplicitMode = Yes | No (仅 FTP)
UseEPSV = Yes | No (仅 FTP)
MoveLevelOnly = Yes | No (仅 FTP)

HostBasedAddr = Yes | No (仅 S3)
AccessPolicy = private | public-read | public-read-write | authenticated-read
ServerEncrKey = "file-path"
ReducedRedundancy = Yes | No (仅 S3)
InfrequentAccess = Yes | No (仅 S3)
ServerSideEncryption = Yes | No (仅 S3)
RequireCheckSum = Yes | No (仅 S3)
AwsUsGovCloud = Yes | No (仅 S3)
GraphLocation = (空) us-east-1 | af-south-1 | ap-east-1 | ap-northeast-1/2/3 |
                ap-south-1 | ap-southeast-1/2 | ca-central-1 | cn-north-1 |
                cn-northwest-1 | EU | eu-central-1 | eu-north-1 |
                eu-south-1 | eu-west-1/2/3 | me-south-1 | sa-east-1 |
                us-east-2 | us-gov-east-1 | us-gov-west-1 | us-west-1/2 (仅 S3)

GraphGroupReadPermissions = Yes | No (仅 MSGraph)
GraphLocation = (空) International | US | DE | CN (仅 MSGraph)

StorageClass = archive | cold | hot (仅 MS Azure)

Program 选项(在 <ProgramOptions>...</ProgramOptions> 内)

GlobalFilterIncluded = Matches <FileMask> ( "match-string" ... ) </FileMask>
GlobalFilterExcluded = Matches <FileMask> ( "match-string" ... ) </FileMask>
HideToTrayOnClose = Yes | No
WarnAboutTrayOnClose = Yes | No
ShowTrayIcon = Yes | No
ShowJobListWindow = Yes | No
ShowFiltersWindow = Yes | No
ShowLogWindow = Yes | No
ShowStatusBar = Yes | No
GroupSimilarLogLines = Yes | No
CheckNewVersion = Yes | No
CreateFolderIfNotFound = Yes | No
DeleteSourceAfterCopy = Yes | No
AutoHideMiniWindow = Yes | No
LogLevel = 0 critical | 1 errors | 2 info | 3 details
LogRetainDays = N
LogFolder = "folder-path"
MirrorFolderPath = "folder-path"
CompareProgramPath = "file-path"
UseSmtpToEmail = Yes | No
SmtpImported = Yes | No
SmtpServer = <SmtpServer> SmtpServer-property ... </SmtpServer>
ProxyServer = <ProxyServer> ProxyServer-property ... </ProxyServer>

SMTP 选项(在 <SmtpServer>...</SmtpServer> 内)

Host = "SMTP 服务器 IP 名称"
Port = N (推荐 587 不带 SSL,465 带 SSL)
UserID = "认证 SMTP 的 user-id"
Password = "认证 SMTP 的密码"
SecureSSL = Yes | No
StartTls = Yes | No
SenderEmail = "sender@company.com"

Proxy 选项(在 <ProxyServer>...</ProxyServer> 内)

UseWinInetProxy = Yes (使用 IE/WinInet 的代理) | No (无自动代理)
UseProxyBelow = Yes (使用下方指定代理) | No (无代理)
Host = "代理服务器 IP 名称"
Port = N (代理服务器端口)
UserID = "认证代理的 user-id"
Password = "认证代理的 user-id"