ファイルを同期できません。

ファイルを同期できません。

2つのサーバー(server1とserver2)間でファイルを同期しようとしています。ユーザーを作成し、そのユーザーに/ var / wwwのRWXに対する権限を付与した後、次の一貫したプロファイルを追加しました。

root=//var/www/html/
root=ssh://user@server2//var/www/html/environments/simreg/


log = true

ignore=Path cache
ignore=Path vendor
ignore=Path logs

auto=true
batch=true
repeat=watch
#confirmbigdel=true
confirmbigdel=false
fastcheck=true
prefer=newer
silent=false
times=true
owner=true
server = true
confirmmerge = true

backupdir = /var/www/html/environments/backup
ui = text

ただし、一貫性を維持しようとすると、バックアップは作成されません。デバッグがうまくいかず、私が間違っていることに気づいていませんでした。

user@server2:~$ unison -debug all
[startup] Preferences:
ui = text
host = 
server = true
prefsdocs = false
doc = 
version = false
silent = false
dumbtty = false
testserver = false
showprev = false
selftest = false
confirmmerge = true
retry = 0
repeat = watch
contactquietly = false
key = 
label = 
expert = false
height = 15
auto = true
maxthreads = 0
prefer = newer
force = 
sortnewfirst = false
sortbysize = false
keeptempfilesaftermerge = false
diff = diff -u CURRENT2 CURRENT1
backupdir = /var/www/html/environments/backup
maxbackups = 2
backups = false
backupsuffix = 
backupprefix = .bak.$VERSION.
backuploc = central
copymax = 1
copyquoterem = default
copythreshold = -1
copyprogrest = rsync --partial --append-verify --compress
copyprog = rsync --partial --inplace --compress
rsync = true
fastcheck = true
ignorelocks = false
dumparchives = false
ignorearchives = false
showarchive = false
rootsName = 
fat = false
allHostsAreRunningWindows = false
someHostIsRunningWindows = false
ignore = Path logs
ignore = Path vendor
ignore = Path cache
confirmbigdel = false
batch = true
root = ssh://user@server2//var/www/html/
root = //var/www/html/
killserver = false
halfduplex = false
stream = true
addversionno = false
servercmd = 
sshargs = 
rshargs = 
rshcmd = rsh
sshcmd = ssh
xferbycopying = true
sshversion = 
ignoreinodenumbers = false
links-aux = true
links = default
times = true
group = false
owner = true
numericids = false
dontchmod = false
perms = 1023
rsrc-aux = false
rsrc = default
maxerrors = 1
unicodeCS = false
unicodeEnc = false
unicode = default
someHostIsInsensitive = false
ignorecase = default
timers = false
terse = false
logfile = /var/www/html/.unison/unison.log
log = true
debugtimes = false
debug = all
addprefsto = 
Contacting server...
[remote] Shell connection: ssh (ssh, -l, dev_user, server2, -e, none, unison, -server)
user@server2's password: 
[globals] Checking path '' for expansions
Connected [//serve1//var/www/html/ -> //server2//var/www/html/]
[startup] Roots: 
        //var/www/html/
        ssh://user@server2//var/www/html/
  i.e. 
        //var/www/html/
        ssh://user@server2//var/www/html/
  i.e. (in canonical order)
       /var/www/html/
       //server1//var/www/html/

[props] Setting permission mask to 1777 (1777 and 7777)
[stasher] initBackupsLocal
[stasher] d = /
[stasher] Prefix and suffix regexps for backup filenames have been updated
[server: stasher] initBackupsLocal
[server: stasher] d = /
[server: stasher] Prefix and suffix regexps for backup filenames have been updated
[ui] Nothing changed: sleeping for 10 seconds...
[ui] Nothing changed: sleeping for 10 seconds...
[ui] Nothing changed: sleeping for 10 seconds...
[ui] Nothing changed: sleeping for 10 seconds...
[ui] Nothing changed: sleeping for 10 seconds...
[ui] Nothing changed: sleeping for 10 seconds...
[ui] Nothing changed: sleeping for 10 seconds...

上記はデバッグ印刷です。ただし、ファイルは両方のサーバーにあります。

ベストアンサー1

ルートが誤って指定されているようです。ローカルパスの前にある二重スラッシュは、リモート//var/www/htmlサーバーへの参照を意味しますがvar、これはあなたが意図したものではないと確信しています。以下を試してください。

root=/var/www/html
root=ssh://user@server2/var/www/html/environments/simreg

あなたの意見によると、«成果物はServer1にデプロイされ、それをServer2にコピーする必要があります。»私はこれがunison仕事に間違ったツールだと思います。代わりに、rsync単方向コピーを提供する使用を検討してください。

rsync -av --progress /var/www/html/ user@server2:/var/www/html/environments/simreg/

実際にファイルをコピーせずにテストするにはを含めてください--dry-runcronバッチジョブ(スクリプトなど)で実行している場合は、--progressフラグを削除してください。

おすすめ記事