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


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.


1

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.