質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

解決済

(修正)Windows10の共有フォルダへLinuxの指定した下層フォルダを転送したい: smbclient

lotoemon
lotoemon

総合スコア11

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

2回答

0リアクション

0クリップ

190閲覧

投稿2022/08/18 16:38

編集2022/08/18 18:24

前提

<環境>
サーバー側   :Windows10Pro(共有フォルダあり:win_share)
クライアント側 :mx Linux21.1(samba及びsmbclient:ver.4.13.13-Debian)

実現したいこと

<パスの構造>
[linux側] ユーザー / linDir / linDir2 / a.txt

[windows側] win_share(共有) / winDir

<希望>
Linuxの下層フォルダ[ linDir2/a.txt ]をWindowsのwin_share/winDir/[ この位置 ]に転送したい
①python3.xでのコード記述

<状況>
以前に類似した質問をこの質問サイトに投稿させて頂き、その件では無事に解決いたしました。
その節は大変お世話になり、ありがとうございました。
お陰様で、ファイルの転送をsmbclientで送受信がpythonでもうまくいきました

linux側の下層フォルダを指定するとターミナルのコマンドではうまくいきましたが
pythonの記述がわかりません。
ぜひ、ご指導・アドバイスのほど、宜しくお願いいたします。

発生している問題・エラーメッセージ

#エラーメッセージは①②ともに特に出ておりません

該当のソースコード

python3.x

import subprocess A = 'smbclient -U username%passwd //win_pc/win_share ' # うまくいったコード  # fileのput  b = '-c "put linDir/linDir2/a.txt winDir/a.txt; exit"'  c = A+b  subprocess.Popen(c, shell=True)  # dirのmput ※ユーザーフォルダの直下にあるフォルダならうまくいきます  d = '-c "cd winDir; prompt; recurse; mput linDir; exit"'  e = A+d  subprocess.Popen(e, shell=True)  ※ターミナルで下記コマンドだとうまくいきましたが、pythonでの記述方法がわかりません   cd linDir; smbclient -U username%passwd //win_pc/win_share -c "cd winDir; prompt; recurse; mput linDir2; exit"  ※現在は暫定的に上記コマンドをbashファイルにしてpythonで呼び出しています   subprocess.Popen(['bash',test.sh]) # 失敗したコード ※ユーザーフォルダの直下にあるフォルダならうまくいきます  x = 'cd linDir; '  f = '-c "cd winDir; prompt; recurse; mput linDir2; exit"'  g = x+A+f  subprocess.Popen(g, shell=True)

試したこと

cd linDir; recurse; 等を追加したり、順番を替えたりと色々試しましたが
自分自身、訳がわからなくなってしまいました
また、webでmaskの記述があり'*'についても記載がありました。そこで
サンプルも検索しましたが、結局、見つからず、全く理解できませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。