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

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

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

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

Linux

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

Q&A

解決済

2回答

599閲覧

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

lotoemon

総合スコア14

Python 3.x

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

Linux

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

0グッド

0クリップ

投稿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

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

試したこと

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

cd linDir; smbclient -U username%passwd //win_pc/win_share -c "cd winDir; prompt; recurse; mput linDir2; exit"

smbclientのlcd(local cd)コマンドを使います。ftpでも同じ。

Python

1'smbclient -U username%passwd //win_pc/win_share -c "cd winDir; prompt; recurse; lcd linDir; mput linDir2; exit"'

ですね。

投稿2022/08/19 06:08

otn

総合スコア84529

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoand

2022/08/19 07:22

good
guest

0

自己解決

お騒がせしました。解決できました

問題ありませんでした。
理由はよくわからないのですが、かなり時間がたってからフォルダが
希望の箇所に作成されていました。これから原因を解明していきたいと思います
今後とも宜しくお願い致します

投稿2022/08/18 18:33

lotoemon

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問