Dlaczego scp nie zastępuje mojego pliku docelowego?

14

Próbuję wykonać kopię zapasową pliku za pomocą polecenia

scp /tmp/backup.tar.gz nazwa hosta: /home/user/backup.tar.gz

Po uruchomieniu pojawia się pasek postępu scp i wygląda na to, że przesyła plik, jednak kiedy loguję się do serwera docelowego, aby sprawdzić plik, znacznik czasu i rozmiar pliku nie zmieniły się od starszej wersji, więc wygląda na to, że scp wcale nie nadpisał starego pliku. Działa tylko wtedy, gdy ręcznie usuwam plik z serwera docelowego.

Używam Ubuntu i dzieje się to na dwóch serwerach: jednym cygwin ssh i jednym fedora core 3.

Czy ktoś ma pojęcie, dlaczego tak się dzieje? Myślałem, że scp zastąpi TYLKO istniejące pliki ..

Dzięki

Noli
źródło
1
Zdarza mi się również na CentOS 6.0. Kopiuję pliki ze Slackware 12.1. Wersja klienta ssh to 5.0p1, a wersja serwera ssh to 5.3p1.
Milan Babuškov,
1
Czy sprawdziłeś, czy jakiś proces nie zastępuje pliku z powrotem? W przeszłości miałem ten sam problem z powodu rsync. Pozdrawiam, RT
user438115
zdarza się również na mięcie linuksowej. SZALONY
Denis

Odpowiedzi:

9

Jeśli pominę nazwę pliku docelowego i podam tylko katalog, to działa:

scp /tmp/backup.tar.gz hostname:/home/user/

Nie rozumiem dlaczego, ale może to być również rozwiązanie twojego problemu.

Milan Babuškov
źródło
1

W debian / lenny to działa. Być może używaszscp -v $localFile $RemoteHost:$RemotePath/$localFile

ThorstenS
źródło