Użyj Samby .
Samba zapewnia usługę udostępniania plików zgodną z systemem Windows.
Możesz udostępnić katalog (na przykład /srv/samba/sharename
) na komputerze z systemem Linux i uzyskać do niego dostęp z Windows tak: \\linuxservername\sharename
. Nie potrzebuje żadnego dodatkowego oprogramowania po stronie Windows.
Samba jest zawarta w większości dystrybucji Linuksa. Zainstaluj go za pomocą menedżera pakietów, na przykład:
Aby skonfigurować Sambę, zobacz:
lub wyszukaj w Google, aby znaleźć przewodnik po swojej dystrybucji.
Należy pamiętać, że może być konieczne skonfigurowanie zapory Linux, w przypadku jej użycia, aby akceptować połączenia z portami 137 / tcp, 138 / tcp, 139 / tcp i 445 / tcp (zobacz to i to ).
W powyższym opisie komputer z systemem Linux to serwer Samba, a system Windows montuje z niego udział.
W komentarzu poniżej wspominasz, że chcesz zautomatyzować proces transferu . Można to osiągnąć poprzez odwrócenie ról, tak aby Windows działał jak serwer, a Linux łączy się z nim za pomocą smbclient
.
Dzięki smbclient
nie musisz w ogóle montować udziału Windows. Na przykład, aby pobrać C:\Directory\file.txt
i skopiować go /tmp
na komputer z systemem Linux:
smbclient '//windowsserver/c$' -c 'lcd /tmp; cd Directory; get file.txt' -U administrator%password
-c
Polecenie do wykonania. Zobacz man smbclient
szczegóły.
-U
Nazwa użytkownika i hasło dostępu do udziału określonego jako username%password
Zmodyfikuj go do swoich potrzeb i dodaj do skryptu.
smbclient
do połączenia z udziałem Windows, skopiowania pliku i rozłączenia. Zredagowałem swoją odpowiedź, spójrz na nią.-c
opcja jest warta użycia w prostych przypadkach. Na moim komputerze hasło jest jawnym argumentem (bez żadnej opcji). A poza tym - wolę trzymać poświadczenia z dala od czytników wiersza poleceń (używającps
lub[h]top
, na przykład), dzwoniąc-U $(cat .username) $(cat .password)
.Wiem, że powiedziałeś, że nie możesz oczekiwać zainstalowania określonego oprogramowania, ale istnieją klienci SSH / SCP / SFTP dla Windows, którzy nie wymagają żadnej konkretnej instalacji; dostępny jest tylko plik wykonywalny. Jedną z nich jest PuTTY z towarzyszem
pscp
ipsftp
narzędziami, ale jestem pewien, że istnieją alternatywy.pscp
ipsftp
może być sterowany całkowicie z wiersza poleceń, dzięki czemu doskonale nadaje się do zadań automatyzacji. Oba mają nawet-batch
przełącznik opisany jako „wyłącz wszystkie interaktywne monity” i prawie na pewno można go wykorzystać.Ponieważ prawdopodobnie masz już zainstalowany i skonfigurowany serwer SSH / SCP / SFTP na serwerze, pozwala to uniknąć konieczności instalowania jakiegokolwiek oprogramowania na dowolnym hoście w celu skopiowania tych plików.
Kolejną zaletą może być fakt, że PuTTY jest open source na licencji permissive, więc jeśli nie robi tego, co chcesz od razu po wyjęciu z pudełka, powinno być względnie łatwe, aby działał tak, jak chcesz.
źródło
Jestem
CentOS 6
użytkownikiem, więc wypróbowałem tę metodęCentOS 6
Zainstaluj sambę za pomocą
Zapytanie o potwierdzenie
Utwórz użytkownika Samba.
Teraz utwórz hasło samby dla nazwy użytkownika sambashare za pomocą komendy smbpasswd.
Utwórz katalog udostępniania samby
zmień własność folderu udostępnionego
Otwórz plik
/etc/samba/smb.conf
i dodaj poniższe linie.Uruchom usługę samba
Sprawdź konfigurację za pomocą
testparm
poleceniaW systemie Windows wpisz to
run
Teraz wprowadź nazwę użytkownika i hasło samby
Gotowe
źródło