
MacノートブックでUbuntuサーバーを設定しようとするとrsync
問題があります。ssh
デフォルトでは、私のコマンドラインは外部ドライブの魅力のように動作し、ディレクトリを同期し、変更されたファイルのみをプッシュします。コマンドを使用するssh
場合成功しかし実際には何も書かないサーバーから。
以下は、動作しないいくつかの基本ファイルを使用してMacラップトップで試したテストです。
~% mkdir foobar
~% cd foobar
foobar% echo "test1" > a.txt
foobar% echo "test2" > b.txt
foobar% cd ..
その後、同期が行われます。
% rsync -a --delete -h -v -n "/Users/sensei/foobar" [email protected]:~/
[email protected]'s password:
building file list ... done
foobar/
foobar/a.txt
foobar/b.txt
sent 133 bytes received 38 bytes 31.09 bytes/sec
total size is 12 speedup is 0.07
コマンドは成功しますが、ssh
Linuxサーバーの場合は何も記録されません。これはファイルを変更せずに2回目の実行で確認さrsync
れました。
~% rsync -a --delete -h -v -n "/Users/sensei/foobar" [email protected]:~/
[email protected]'s password:
building file list ... done
foobar/
foobar/a.txt
foobar/b.txt
sent 133 bytes received 38 bytes 38.00 bytes/sec
total size is 12 speedup is 0.07
ここで何を見逃しているのかわからないので、私は次のようにrsync
実行しました。
~% rsync -a --delete -h -vvvvv -n "/Users/sensei/foobar" "[email protected]:~/"
cmd= machine=ssh.w.name.com user=senseilinux path=~/
cmd[0]=ssh cmd[1]=-l cmd[2]=senseilinux cmd[3]=ssh.w.name.com cmd[4]=rsync cmd[5]=--server cmd[6]=-vvvvvnlogDtpr cmd[7]=--delete cmd[8]=. cmd[9]=~/
opening connection using ssh -l senseilinux ssh.w.name.com rsync --server -vvvvvnlogDtpr --delete . "~/"
[email protected]'s password:
FILE_STRUCT_LEN=24, EXTRA_LEN=4
(Client) Protocol versions: remote=31, negotiated=29
(Server) Protocol versions: remote=29, negotiated=29
building file list ...
[sender] make_file(foobar,*,2)
[sender] make_file(foobar/b.txt,*,2)
[sender] make_file(foobar/a.txt,*,2)
done
server_recv(2) starting pid=58290
[sender] i=0 /Users/sensei foobar/ mode=040755 len=128 uid=501 gid=20 flags=1
[sender] i=1 /Users/sensei foobar/a.txt mode=0100644 len=6 uid=501 gid=20 flags=0
[sender] i=2 /Users/sensei foobar/b.txt mode=0100644 len=6 uid=501 gid=20 flags=0
send_file_list done
file list sent
send_files starting
recv_file_name(foobar)
recv_file_name(foobar/b.txt)
recv_file_name(foobar/a.txt)
received 3 names
uid 501(sensei) maps to 501
process has 2 gids: 27 1034
gid 20(staff) maps to 50
[Receiver] flist_eof=1
[Receiver] flist start=0, used=3, low=0, high=2
[Receiver] i=0 1 foobar/ mode=040755 len=128 gid=(50) flags=405
[Receiver] i=1 2 foobar/a.txt mode=0100644 len=6 gid=(50) flags=400
[Receiver] i=2 2 foobar/b.txt mode=0100644 len=6 gid=(50) flags=400
recv_file_list done
get_local_name count=3 /home/senseilinux/
[Receiver] change_dir(/home/senseilinux)
generator starting pid=58290
deleting in foobar
[generator] pushing local filters for /home/senseilinux/foobar/a.txt/
[generator] pushing local filters for /home/senseilinux/foobar/b.txt/
delta-transmission enabled
recv_generator(foobar,0)
send_files(0, /Users/sensei/foobar)
foobar/
recv_generator(foobar/a.txt,1)
recv_generator(foobar/b.txt,2)
generate_files phase=1
send_files(1, /Users/sensei/foobar/a.txt)
foobar/a.txt
send_files(2, /Users/sensei/foobar/b.txt)
foobar/b.txt
send_files phase=1
recv_files(3) starting
recv_files(foobar)
recv_files(foobar/a.txt)
recv_files(foobar/b.txt)
recv_files phase=1
generate_files phase=2
send_files phase=2
send files finished
total: matches=0 hash_hits=0 false_alarms=0 data=0
recv_files phase=2
generate_files phase=3
recv_files finished
generate_files finished
client_run waiting on 12185
sent 133 bytes received 38 bytes 38.00 bytes/sec
total size is 12 speedup is 0.07
_exit_cleanup(code=0, file=/BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-52.200.1/rsync/main.c, line=996): entered
_exit_cleanup(code=0, file=/BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-52.200.1/rsync/main.c, line=996): about to call exit(0)
明らかにすべてが大丈夫です。しかし、サーバーには何もありません。
それだけでなく大丈夫です。scp
ファイルをサーバーに送信する場合:
~% scp -r foobar [email protected]:
[email protected]'s password:
b.txt 100% 6 0.5KB/s 00:00
a.txt 100% 6 0.5KB/s 00:00
# ON THE LINUX SERVER:
~$ ls foobar/
a.txt b.txt
私は何を見逃していますか?
答え1
を使用すると、rsync -n
ターゲットに何もコピーされません。
-n
オプションは、「変更なしでテストを実行する」(マニュアルからインポートされたフレーズ)とrsync
同じです。--dry-run
コマンドラインから削除し-n
てもう一度やり直してください。