mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-31 04:23:40 +00:00
fix: rsync backup bugs and optimize flags for encrypted CIFS targets
- Fix restoreBackup using backupOptions instead of restoreOptions - Add missing await on preRestore/postRestore hooks - Remove -c (checksum) flag that forced full reads on every run - Add --partial to keep partially transferred files on interruption - Add --inplace to avoid temp-file+rename metadata churn - Add --timeout=300 to prevent hangs on stalled mounts
This commit is contained in:
@@ -221,7 +221,7 @@ export class Backups<M extends T.SDKManifest> implements InitScript {
|
|||||||
* @param effects - The effects context
|
* @param effects - The effects context
|
||||||
*/
|
*/
|
||||||
async restoreBackup(effects: T.Effects) {
|
async restoreBackup(effects: T.Effects) {
|
||||||
this.preRestore(effects as BackupEffects)
|
await this.preRestore(effects as BackupEffects)
|
||||||
|
|
||||||
for (const item of this.backupSet) {
|
for (const item of this.backupSet) {
|
||||||
const rsyncResults = await runRsync({
|
const rsyncResults = await runRsync({
|
||||||
@@ -229,9 +229,9 @@ export class Backups<M extends T.SDKManifest> implements InitScript {
|
|||||||
dstPath: item.dataPath,
|
dstPath: item.dataPath,
|
||||||
options: {
|
options: {
|
||||||
...this.options,
|
...this.options,
|
||||||
...this.backupOptions,
|
...this.restoreOptions,
|
||||||
...item.options,
|
...item.options,
|
||||||
...item.backupOptions,
|
...item.restoreOptions,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
await rsyncResults.wait()
|
await rsyncResults.wait()
|
||||||
@@ -242,7 +242,7 @@ export class Backups<M extends T.SDKManifest> implements InitScript {
|
|||||||
})
|
})
|
||||||
.catch((_) => null)
|
.catch((_) => null)
|
||||||
if (dataVersion) await effects.setDataVersion({ version: dataVersion })
|
if (dataVersion) await effects.setDataVersion({ version: dataVersion })
|
||||||
this.postRestore(effects as BackupEffects)
|
await this.postRestore(effects as BackupEffects)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -268,7 +268,10 @@ async function runRsync(rsyncOptions: {
|
|||||||
for (const exclude of options.exclude) {
|
for (const exclude of options.exclude) {
|
||||||
args.push(`--exclude=${exclude}`)
|
args.push(`--exclude=${exclude}`)
|
||||||
}
|
}
|
||||||
args.push('-rlptgocAXH')
|
args.push('-rlptgoAXH')
|
||||||
|
args.push('--partial')
|
||||||
|
args.push('--inplace')
|
||||||
|
args.push('--timeout=300')
|
||||||
args.push('--info=progress2')
|
args.push('--info=progress2')
|
||||||
args.push('--no-inc-recursive')
|
args.push('--no-inc-recursive')
|
||||||
args.push(srcPath)
|
args.push(srcPath)
|
||||||
|
|||||||
Reference in New Issue
Block a user