Hvordan kan jeg kopiere filer fra Unix til Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Er der på nogen måde et script, der kopierer filer fra et Unix-drev til et Windows-drev?

Bedste reference


Jeg gør det manuelt hele tiden ved hjælp af sikker kopi (SCP). SCP leveres allerede installeret på de fleste Unix-maskiner. På min pc installerede jeg PuTTY, som er en sikker terminal app til Windows og indeholder også et sikkert kopieringsværktøj. [6] [7]


Når du gør den sikre kopi manuelt fra kommandolinjen Windows, sætter du dit Unix brugernavn i kommandolinjekommandoen, men så skal du indtaste dit kodeord ved prompten, så det er interaktivt. Men jeg har også tænkt på gør det fra et script eller en batch-fil. I så fald skal du oprette og installere private og offentlige nøgler på de relevante maskiner. Jeg oprettede de relevante nøgler og installerede dem på både Windows og Unix-maskinerne, og derefter udførte jeg manuelt Windows-kommandolinjens sikre kopi igen, og det gjorde ikke mig om min adgangskode dengang. Så det er en måde du kan udføre din opgave på. Jeg er sikker på, at der er mange andre måder, selvom. [8]

Andre referencer 1


Ja, så længe det operativsystem scriptet kører på kan læses fra Unix-drevet og skrive til Windows-drevet. Da dette er tagget vbscript, vil jeg antage at du kører på Windows, så du måske vil se nærmere på noget som dette for at få adgang til Unix-filsystemer til Windows (selvom det er Linux-ekstern driver). Så kører det bare en standard kopifunktion til at fuldføre din opgave. [9]

Andre referencer 2


Da du har et Samba-tag, taler du om at montere en netværksandel fra en Unix-maskine på din Windows-maskine?


Hvis det er tilfældet, behandles det bare som et normalt netværksdrev, og du vil kunne kopiere alt, hvad du havde tilladelser via aktien.

Andre referencer 3


Jeg ville bruge forventet værktøj. [10]


Her er et eksempel på, hvordan du uploader



  • /local/path/to/file



til



  • \HOSTSHARE emotepath ofile



autentificering med domainuser ved hjælp af kodeord password:


expect <<<EOF
set timeout 10
spawn smbclient //HOST/SHARE "-Udomain\user\%password"
expect {
  "smb: \\\\>" {
    send "cd /remote/path/to
"
    expect {
      "NT\_STATUS\_OBJECT\_NAME\_NOT\_FOUND" {exit 1}
      "smb: *>"                         {
        set timeout -1
        send "put /local/path/to/file file
"
        expect {
          "putting file " {
            expect "smb: *>" {exit 0}
          }
          "smb: *>" {exit 1}
        }
      }
    }
  }
}
# Timeout
exit 1
EOF