web-dev-qa-db-ja.com

WindowsからLinuxにファイルをコピーする

1つのスクリプトを書いています。 1台のLinuxマシンを実行します。そのターゲットには、linux、solaris、windowsが含まれます。

私はscpを使用して* nix間でファイルをコピーできることを知っています。しかし、ウィンドウからファイルをコピーするのはどうですか?

これらのウィンドウはテストマシンであり、OSは頻繁に再インストールできるため、特定のソフトウェアをインストールすることは期待できません。

17
Alex

Samba を使用します。

Sambaは、Windowsと互換性のあるファイル共有サービスを提供します。

Linuxコンピューター上のディレクトリ(たとえば、/srv/samba/sharename)を共有し、Windowsから\\linuxservername\sharenameのようにアクセスできます。 Windows側で追加のソフトウェアを必要としません。

SambaはほとんどのLinuxディストリビューションに含まれています。たとえば、パッケージマネージャーを使用してインストールします。

  • Ubuntu:Sudo apt-get install samba smbclient

  • SUSE:zypper samba

  • CentOS/RedHat:yum install samba

Sambaを構成するには、以下を参照してください。

または、Googleを検索して、ディストリビューションのガイドを見つけます。

Linuxファイアウォールを使用する場合は、ポート137/tcp、138/tcp、139/tcpおよび445/tcpへの接続を受け入れるために、Linuxファイアウォールの構成が必要になる場合があることに注意してください( this および-を参照)。 これ )。


上記の説明では、LinuxコンピューターはSambaサーバーであり、Windowsはそこから共有をマウントします。

以下のコメントで、転送プロセスを自動化することを述べています。これは、Windowsがサーバーとして機能し、Linuxがsmbclientを使用してサーバーに接続するように役割を逆にすることで実現できます。

smbclientを使用すると、Windows共有をマウントする必要がまったくありません。たとえば、C:\Directory\file.txtを取得してLinuxコンピューターの/tmpにコピーするには、次のようにします。

smbclient '//windowsserver/c$' -c 'lcd /tmp; cd Directory; get file.txt' -U administrator%password

-c実行するコマンド。詳細は man smbclient を参照してください。

-Uusername%passwordとして指定された共有にアクセスするためのユーザー名とパスワード

必要に応じて変更し、スクリプトに追加します。

21
jaume

特定のソフトウェアをインストールすることは期待できないとおっしゃっていましたが、Windows用のSSH/SCP/SFTPクライアントがあり、特定のインストールを必要としません。実行可能ファイルのみが利用可能です。私が引き続き注目するのは PuTTY とそのコンパニオンpscpおよびpsftpツールですが、代替手段が存在することは確かです。 pscpおよびpsftpは、コマンドラインから完全に駆動できるため、自動化タスクに最適です。どちらも-batch「すべてのインタラクティブプロンプトを無効にする」と説明されており、ほぼ確実に利用できます。

おそらくすでにSSH/SCP/SFTPサーバーがインストールされ、サーバーに構成されているため、これらのファイルをコピーする目的でいずれかのホストにソフトウェアをインストールする必要がなくなります。

もう1つの利点は、PuTTYが寛容なライセンスの下でオープンソースであることです。そのため、箱から出してすぐに必要なことを実行できない場合は、比較的簡単に好みの方法で動作させることができます。

3
a CVn

私はCentOS 6ユーザーなので、この方法をCentOS 6

を使用してsambaをインストールする

[root @ server〜]#yum install samba

確認のためのクエリ

 [root @ server〜]#rpm -qa samba 
 samba-3.5.10-125.el6.i686 

Sambaユーザーを作成します。

[root @ server〜]#useradd sambashare

次に、smbpasswdコマンドを使用して、ユーザー名sambashareのsambaパスワードを作成します。

 [root @ server〜]#smbpasswd -a sambashare 
 New SMB password:
 Retype new SMB =パス​​ワード:
ユーザーsambashareを追加しました。

Samba共有ディレクトリを作成する

[root @ server〜]#mkdir/share

共有フォルダの所有権を変更する

[root @ server〜]#chown -R sambashare:sambashare/share /

ファイルを開く/etc/samba/smb.confと以下の行を追加します。

 [共有] 
コメント=共有
パス= /share
書き込み可能=はい
有効なユーザー= sambashare 

Sambaサービスを開始する

 [root @ server〜]#service smb restart 
シャットダウンSMBサービス:[OK] 
開始SMBサービス:[OK] 

testparmコマンドを使用して構成を確認します

。
。
 [share] 
 comment = share 
 path = /share
valid users = sambashare 
読み取り専用=いいえ

Windowsシステムでは、これをrunに入力します

enter image description here

次に、Sambaのユーザー名とパスワードを入力します

enter image description here

あなたは終わりました

enter image description here

1
max