• 締切済み

shellでsmbclientでファイル転送

お世話になります。 smbclientを使ってlinux->windowsへとファイルを転送しようとしています。 手動では smbclient //windows_client/d -U administrator% smb: \>put text1.txt smb: \>exit これをシェルスクリプトにしたいのですが、smbに文字を渡すにはどうしたら よいのでしょうか?お願いいたします。

みんなの回答

回答No.1

手元にsmbclientというのがありませんので 実験することはできませんが、 対話形式のコマンドを実行する場合、 シェルのヒアドキュメントが使われるようです。 うまくいくかどうかは、わかりませんが、 試す価値はありだとおもいます。 例) #!/bin/sh smbclient //windows_client/d -U administrator% << EOF put text1.txt exit EOF

geso775
質問者

お礼

早速のご回答有難う御座います。 例に示されたものを実行してみたのですが、変わりませんでした。 ドキュメントを見ましたら-cオプションがあり、そこでコマンドを渡すことが出来ました。 解決しました。有難う御座いました。

関連するQ&A

  • Linux shell ftp 転送 エラー制御

    Linuxのshellで、ftpを使ってデータを転送するシェルを作成しています。 転送部分はうまくいき、エラー制御を考えているのですが上手くいきません。(ログは取得できてます) やりたいことは、ftp転送で失敗したかどうかの判定をしたい。ということです。 過去ログ等見ていて、ログファイルからエラーNoをgrepして判断する。というやり方があったので 試して見ましたが、構文が正常に書けていないようです。すみませんがアドバイスをお願い致します。 ftp転送終了したとします。 ログは $Log_Path/$date.txt にとってあります。 grep ^425 $Log_Path/$date.txt /dev/null if $? eq 0 then error_flag=1 exit 1 fi (エラーが発生したら、error_flagに1が入るようにしたい) エラーナンバーは425(データコネクションをオープンできない)というやつで、いいかなと思っていますが、もっと適切なものがあれば教えて下さい。(putで行っている転送の失敗を判断できればいいです) 上記の構文ではエラーが出ます。 また、 /dev/null の部分が意味が解っていません。この部分の説明をお願いできますでしょうか? 宜しくお願い致します。

  • smbclientの戻り値を取得

    お世話になります。perlプログラムからshellを呼び出して shellでsmbclientを呼び出すのですが、smbclientの戻り値を 受け取るにはどうしたらよいでしょうか? test1.pl $re = system "sh test1.sh"; test.sh smbclient //host/dir -U user%passwd put ... put ... exit イメージはこんな感じです。 宜しくお願いします。

  • Ftpファイル転送バッチ

    Ftpで ファイル転送をしたいです。 ******************* 1,ftp ***.***.***.*** 2,ID 3,パスワード 4,binary 5,put ファイル名 6,bye 7,exit ******************* 上記の様に実行したいです。 2,3は手入力 その他は自動 初心者なので クライアントヘルプをみても 理解できませんでした。 わかりやすい説明を出来ればお願いします。 よろしくお願いします。

  • ローカルネット内にてファイルをシェルで転送するには?

    初投稿させて頂きます。 パソコンが最近不安定なので、バックアップとして定時にローカルネット内の他機へファイルを転送するシェルを作りたいと考えています。 流れは、 #!/bin/bash sftp 他機のローカルアドレス ユーザー名 パスワード put file.txt こういうイメージなんですがアカウントとパスを入力するところで躓いています。検索してもUNIXのコマンド(user等)しか引っかかりませんでしたので、linuxで使える良いコマンドはありませんか。 環境はCentos5です。どうぞよろしくお願いします。

  • WindowsからLinuxへのファイル転送

    Cygwinをインストールして、Windows(クライアントマシーン)から、LinuxのOSへ ファイル転送をしたいと思っています。 sftp> put filename 上記では、ファイルが見つかりませんとエラーが帰ってきてしまい、送ることができない状況にあります。 Windows環境で、どこか設定するところがあるのでしょうか?また、送りたいファイルを置いてある場所が悪いのでしょうか? よろしくお願いいたします。

  • OSを起動するとFTPサーバからファイル転送

    クライアントPC(Linux)を起動すると、 FTPサーバからテキストファイルが転送され、 そのファイルをテキストクライアントOS側で読み込みたいです。 このようなことは実現可能でしょうか? ヒントや参考サイトを教えて下さい。

  • ファイル共有のsambaの設定

    共有できるようになりました。 Windows98からLinux上の共有フォルダに 新規テキスト.txtを作成しました。 Linuxのフォルダ更新でLinuxからも新規テキスト.txtが見えました。 しかし、Linuxでlsすると緑色の文字で 文字化けしたファイル名.txt* が表示されました。 LinuxのGNOMEで新規テキスト.txtをコピーすると、致命的エラーでコピーできませんでした。そして文字化けしたファイル名.txtがあるフォルダウインドウが強制終了しました。 smb.confでは、 [global] client code page = 932 #SJIS --省略-- coding system = euc #sjisの時と全く同じようだった [myshare] writeable = yes path = /home/momopc/sharefolder としています。 alternate permissions は全く指定していなくてたぶんデフォルトでNTです。 どうしたらlsの文字化けが直るのでしょうか? GNOMEでは化けていませんでしたが、lsで化けて表示された文字が、実際にWindowsから作成されたファイル名なんだと思います。

  • シェルスクリプトで困っています 2

    度々申し訳ございません。 現在、Linuxマシン1からLinuxマシン2へTelnetでログインし、Linuxマシン2上にあるシェルスクリプト(/bin/sh)を実行し、Linuxマシン2上のプログラムを実行した後、Linuxマシン2からログアウトするシェルスクリプトを作成中です。 その、Linuxマシン2からログアウトする際に、 "exit"を記述しているのですが、その"exit"がTelnetログアウトの意味で実行されず、シェルスクリプトを終了するの意味で実行されていて困っています。 どなたか上手くTelnetからログアウトできるようにシェルスクリプトを組む方法をご存知ではないでしょうか?もし判りましたらご教授下さい。 よろしくお願い致します。

  • shスクリプトでftp接続してファイル転送したい

    テキストファイルの1行の文字列を読込んで ftpで、文字列と同名のファイルを別サーバに転送する shスクリプトを作成したいと思っています。 テキストファイルから読込んだ文字列を変数に格納して ftp接続後、putで変数を指定すると 『変数名のファイルがありません』 というエラーがでます。 エラーメッセージから、変数が変数として扱われていない。 ファイル名そのものとして扱われていると思います。 テキストファイルから読込んだ文字列をftpで使用するには どうしたらよいでしょうか? また、何か代替案はあるのでしょうか? 簡略化したshスクリプトの内容は以下の通りです。 ------------------------------------ #!/bin/sh read filename <./test.txt ftp -n host_name <<"EOD" user user_name password passive binary cd /export/test put filename bye EOD -----------------------------------

  • Redhat9にあるシェルスクリプトをWinXPのアプリから実行させる方法

    サーバ:Redhat9(ファイル[smb],DB[postgres]サーバ) クライアント:WinXPorWin2000 Redhat9でDBの一括処理をシェルスクリプトで作成しました。 自動処理はcrontabなどで行っていますが、手動処理も行いたいと思います (DBだけではなく、いろいろ活用する予定です) クライアントはVC6.0で作成されたアプリが動作しています。 (要はクライアントサーバシステムです) クライアントのアプリからボタンクリックでRedhatのシェルスクリプトを実行するよい方法はありますか? 現在案として (1)Redhatでシェルスクリプトを作成する (2)Windowsでrshコマンドを使用しシェルスクリプトを実行するバッチファイルを作成する (3)クライアントのアプリからバッチファイルを実行する という方法を考えていましたが、 rshのPermission deniedの問題で先に進めません。(この件は別スレッドで質問済みです) 何か良い案をご教授頂けますでしょうか? よろしくお願いします