• ベストアンサー

shell lftpでsftp接続

Shellのスクリプトの中で次のコマンドを記述しています。 lftp -u "user","pass" sftp://IP 操作対象ファイルがあるDIRに移動後↓ >mv *.csv home/oracle/work/ のように拡張子がCSVのファイルをすべてworkに移動したいのですが、 これをsh -x で実行すると、 Access fairure: No such file (*.csv) と出力されてしまいます。 複数ファイルのディレクトリ移動はできないのでしょうか? どなたかご存知の方がいればご教示いただきたく存じます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

なんかこんなんするしか無いみたいですね。残念な気がしますが。 http://www.unix.com/shell-programming-scripting/46727-ftp-get-list-file-get-retrieve-move-them.html サーバーが対応してるなら mv dirname1 dirname2 でディレクトリの名前ごと変更できるみたいです。

anman0201
質問者

お礼

ご回答ありがとうございます。 教えていただいたディレクトリごと移動する方法にしました。 助かりました! ありがとうございます・・・

関連するQ&A

  • Cシェルでエラーハンドリングする方法について

    Cシェルでエラーハンドリングする方法について 特定のファイルをしたのディレクトリに移動させる際、特定ファイルがなければ、処理を終了するという記述の仕方を教えていただきたいです。 すでに、以下のように記述をしてファイルを指定したディレクトリへ移動する動作確認はできています。 ------------------------------------------ set dir1=/export/home/username/test1_dir set dir2=/export/home/username/test2_dir mv ${dir1}/*.log /export/home/username/mv_dir mv ${dir2}/*.csv /export/home/username/mv_dir ------------------------------------------ この場合、*.log、*csvがディレクトリ内に存在すれば、移動先ディレクトリへ移動し ファイルがなければそのまま終了しています。 ファイルがなかったとしても、シェルが実行中のまま終わらなかったり エラーがでてしまうことはありませんでしたが、 念のため、ファイルが存在しない場合、何もせず処理を終了する というエラーハンドリング処理を入れたいと思うのですが、 どのように記述したらよいでしょうか? if (条件式) コマンド行 で実施ができるのか?と思うのですが どのような記述となりますでしょうか。

  • sftpのディレクトリ制限について

    sftpのディレクトリ制限についてので質問です。 友人とのファイルのやり取りにSFTPを考えています。 そこで、ChrootDirectoryを使用してディレクトリ制限をかけたいと思っているのですが、 Webサイトなどを参考に設定してみましたが、うまく出来ません。 /etc/ssh/ssd_config ~略~ Subsystem sftp internal-sftp Match group sftponly ForceCommand internal-sftp ChrootDirectory /chroot/ X11Forwarding no AllowTcpForwarding no と設定し、 /etc/group sftponly:x:300: /etc/passwd user:x:300:300::/:/sbin/nologin とユーザーグループを作成し。 ls -l / drwxr-x---. 3 root sftponly 4096 1月 9 07:51 2013 chroot ls -l /chroot drwxrwxrwx. 2 user sftponly 4096 1月 9 07:51 2013 share を作成しました。 以上の設定をしていざsftpで接続してみると、 # sftp user@localhost Connecting to localhost... user@localhost's password: sftp> pwd Remote working directory: / sftp> ls Couldn't get handle: Permission denied sftp> cd share sftp> pwd Remote working directory: /share sftp> put a Uploading a to /share/a Couldn't get handle: Permission denied sftp> と上記の様にcdでのディレクトリ移動などはできますがファイルの一覧取得は権限がなくできませんでした。 ディレクトリ制限をしたユーザでsftpでファイルのやり取りをするためにはあとどのような設定が必要でしょうか? よろしくお願いします。 環境 OS:CentOS 6.3 openssh-5.3p1-81.el6_3.x86_64

  • シェルスクリプトを使ったSCPのエラー

    お世話になります。 シェルスクリプトを使い、サーバAからサーバBへファイルを定期的にコピーしようと、以下のシェルスクリプトを作りました。 test.sh ================= #!bin/sh HOST1=hostB.com (さくらVPSサーバ) USER1=hugahuga PASS1=hogehoge TARGET_DIR1=/home/user/data/  #サーバB(転送先)のディレクトリ BACKUP_DIR1=/home/user/data_new/*  #サーバA(転送元)のディレクトリ expect -c " set timeout 30 spawn scp ${BACKUP_DIR1} ${USER1}@${HOST1}:${TARGET_DIR1} expect { \" Are you sure you want to continue connecting (yes/no)? \" { send \"yes\r\" expect \"password:\" send \"${PASS1}\r\" } \"password:\" { send \"${PASS1}\r\" } } interact " ================= sh test.sh すると、以下のようなエラーが出ます。。 /home/user/data_new/*: No such file or directory そのまんまだとは思うのですが、ファイルもディレクトリもありますし、上記スクリプトのSCPコマンド部分をコピペして、シェル上で実行すると普通にうまくいきます。 サーバAもBもUbuntu12.04です。 一体何が原因なのでしょうか・・

  • Shellの使い方について

    VBを最近はじめたのですが、Shellがうまくいかず、困っています。 下記のような内容で、MS-DOS上で動作するプログラムをShellで呼び出していますが、ファイルが見つからないというエラーが出てしまいます。(<D:\kakasi\401.txt:No such file or directory) com1 = "kakasi.exe " + param + " <" + lbl_open_file + " > " + lbl_save_file retval = Shell(com1, vbNormalFocus) kakasi.exeには、パスが通してありますので、lbl_open_fileやlbl_save_fileのファイルが見つからないと思われます。 実行時のcom1の値は、kakasi.exe -Jk -Hk -Kk <D:\kakasi\401.txt > D:\kakasi\401.txt1 になっていて、DOSプロンプトから手入力、実行ではうまくいきます。 何が問題なのか分かる方、教えてください。 よろしくお願いします。

  • FreeBSDでファイルをゴミ箱に一旦捨てるスクリプト

    今FreeBSDでファイルを削除する際にそのまま消すのではなく一旦 ~/.trash/ というディレクトリに移動させるスクリプトを作っています。 しかし私はスクリプトを作ったことがほとんどないためなかなあうまくいきません。 本を見て #! /bin/sh mv $@ ~/.trash/ という単純なものはできたのですが これだとディレクトリを削除してゴミ箱に送った後同じ名前のファイルを ゴミ箱に送ろうとするとエラーが起きてしまいます。 そこでゴミ箱に送る際ファイル名を 削除するファイル.現在の時刻  にしようと思い #! /bin/sh # move to the trash directory TRASHTIME=`date +"20%y-%m%d-%k%M%S"` mv $@ $@.$TRASHTIME mv $@.$TRASHTIME ~/.trash/ としてみたのですが全然うまくいきませんでした。 どのようにしたらうまくいくでしょうか?

  • mv処理後の環境変数について

    いつもお世話になっております。 今回は、mv処理後圧縮するということです。 set DIR1 = /tmp set DIR2 = /work mv $DIR1/ファイル1 $DIR2/ファイル1 compress -f $DIR2/ファイル1 としたいのですが、mvで移動したファイル1を 変数設定して圧縮したいのですがどの様に記述きたら 良いでしょうか?

  • SFTPのソフト「FUGU」でディレクトリごと消したい

    仕事でSFTP接続じゃないとダメなサーバにはFUGU(Ver1.1.1)を使用しているのですが,このソフトは「Delete」でサーバにあるファイルを消す時に,ディレクトリごと削除する事はできないのでしょうか? ディレクトリの中にファイルがあると消せないと気づき,いちいち中に移動して削除しては1階層上がり,フォルダを消すという動作をするのはかなりの負担です. 英語がダメなので設定を変更したら行けるとかあれば誰か教えてください.

    • 締切済み
    • Mac
  • sourceforgeのshellサーバについて。

    現在、sourceforgeの自分のアカウントのshellサーバー内にログインして、自プロジェクトのリポジトリのダウンロードを行おうと思っているのですが、暗号鍵の作成などを完了して、puttyjp.exeでログインして @sf-usr-shell:~$ ls と行って、ディレクトリ内を閲覧しようと思ったのですが、何も入っていないようで何もフォルダやファイル名が表示されません。 自プロジェクトのリポジトリ等のpassはどこになりますでしょうか? ぜひご教授よろしくお願い致します。

  • VBのshellについて。

    すみません。教えてください。 環境OS:winXP ソフト:VB6.0 sp5 内容:shellを利用してbatファイルをキックさせようとしていますがうまくいかないのです。 --VBソース-- Str = "C:\program file\SOFT\test.bat" & "/w" nR = shell(Str,1) -- batファイルの中身-- @echo dir %1 > "C:\Program File\SOFT\log.txt" 以上のデータなのですが、EXEを作成し、Shellを起動するとエラーが帰ります。 確認したところ、windows2000では問題ないのですが、XPではProgram Fileのスペースが問題で、エラーになってしまうのです。 教えていただきたいのは、 1.本当にXPではスペースのあるディレクトリ名はエラーになるのかということ。 2.もしエラーになるのであれば、対応策。 の上記の2点を教えてくださいませ。 いろいろ試し、探しているのですが、なかなか見つからず困っています。 XPのみできないっていうのも半信半疑だし・・・・ お願いします。

  • ディレクトリ内の拡張子指定ファイル移動

    自分では難解で、同じような質問がなかったため質問します。私は新米です。 ルートディレクトリ(./)内の拡張子が『.send』のファイルを全て別のディレクトリ(./back)に移動するクーロンを組もうと思っているのですが、ルートディレクトリのパーミッションが750のためか下記のスクリプトですと、copyの行及びunlinkの行でPermission deniedのエラーが出ます。 ./backディレクトリに関しては777にしています。 ルートディレクトリのパーミッションはサーバーの仕様で変えられないのですが、何か有効がありますでしょうか?どうかご教授ください。 <?PHP if ($dir = opendir("./")) { while (($file = readdir($dir)) !== false) { if(preg_match("/.send/",$file)) { copy("./".$file,"./back".$file); unlink("./".$file); } } closedir($dir); } ?>

    • ベストアンサー
    • PHP