• ベストアンサー
  • 困ってます

シェルスクリプト内でのsloginの使用

複数のサーバにアップした同一ファイルについて、シェルスクリプトからsloginしてlsコマンドによる日付の目視確認をしたいと思っています。 ところが、シェルスクリプトで slogin -i 公開鍵 user@host を実行しても slogin: : Name or service not known と表示されて、コマンドが認識されないようです。 sshにしても、同様でした。 ちなみに、scpによるコピーはうまくいきます。 sloginはシェルスクリプト内で使えないのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数366
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1
  • Ceren
  • ベストアンサー率49% (90/183)

> Name or service not known このエラーは、接続先に指定したホストの名前解決ができなかったことを示しているようです。 通常、「slogin: ホスト名:Name or service not known」のように出力されるはずですが、 ホスト名の部分が入っていないと言うことは、スクリプトに記述したコマンドラインが期待通りに解釈されていないのではないでしょうか? 「slogin ""」などを実行すると同様の現象が発生することが判ると思います。 例えば「user@host」の部分が実は変数になっていて、 「slogin -i 公開鍵 "${USER}"」としたものの変数が空だった、などということはありませんか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

おっしゃる通りですた。 ありがとうございます。。。

関連するQ&A

  • PHPからシェルコマンドの実行

    PHPからシェルコマンドを実行したいのですが SSHやSCPコマンドが使えません。 phpからlsなどは問題なく実行できます。 具体的には以下のように書いています。 `scp test.log user@host:/home/hoge`; shell_exec()を使っても実行されませんでした。 環境は以下のとおりです。 PHP 5.4.17 CentOS 5.8 sshやscpコマンドをphpから実行するには何か特別な方法が必要なのでしょうか。 ご存知の方、教えてください。

    • ベストアンサー
    • PHP
  • 外出先ホストからでも容易にSSH公開鍵アクセスできるようにするには

    RedHat9(host1)─WAN─RedHat9(host2) | WAN | Solaris2.6 としています。 host2で [user01@host2]$ ssh-keygen -t dsa [user01@host2]$ ssh-keygen -t rsa [user01@host2]$ ssh-keygen -t rsa1 [user01@host2]$cat ~/.ssh/id_dsa.pub >> ~/authorized_keys [user01@host2]$cat ~/.ssh/id_rsa.pub >> ~/authorized_keys [user01@host2]$cat ~/.ssh/identity.pub >> ~/authorized_keys [user01@host1]$ scp -P 60001 user01@host2:~/authorized_keys ~/.ssh/ [user01@host1]$ ls -l ~/.ssh/authorized_keys -rw------- 1 user01 user01 1179 1月 8 11:17 /home/user01/.ssh/authorized_keys [user01@host1]$ ls -alF ~/ | grep ssh drwx------ 2 user01 user01 4096 12月 23 13:06 .ssh/ として [user01@host2]$ ssh -l user01 host1 -p 60001 Enter passphrase for key '/home/user01/.ssh/id_rsa': となり、アクセスできました。 続いて、 [hoge@solaris]$ scp -P 60001 user01@host2:~/.ssh/* ./.ssh/ として host2の公開鍵、秘密鍵をコピーしました。 そして、 [hoge@solaris]$ ssh -l user01 host1 -p 60001 としてみましたら、 「Permission denied」 となってアクセス出来ません。 どうすればアクセス出来るようになるのでしょうか?

  • シェルスクリプト初心者です、以下のシェルを見てくだ

    お世話になります。 CentOS5にて、ディレクトリ「/home/user」からリモートホスト「192.168.11.200」の「/home/user」へ sshの鍵方式を使い、SCPで画像のコピーを行うシェルスクリプトを書きました。 以下のシェルスクリプトを書いたのですが、3行目の「/usr/bin/scp」が引っかかって 「/home/user/move_img.sh: line 3: `/usr/bin/scp -P 22 -i "/home/user/.ssh/id_rsa" -r ${FILE} user@192.168.11.200:${FILE};'」 とのエラーが出てしまいます。 素人のくせにシェルなんて書くなと言われればそれまでですが、 一体どの記述が悪いのか見当がつきません。 ご教授をお願いいたします。 ------ #!/bin/sh for FILE in `find /home/user -regex ".*\.\(jpg\|png\|gif\|JPG\|GIF\|PNG\)"`; /usr/bin/scp -P 22 -i "/home/user/.ssh/id_rsa" -r ${FILE} user@192.168.11.200:${FILE}; done ------

  • シェルスクリプトを使った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です。 一体何が原因なのでしょうか・・

  • RedHatでDSA公開鍵認証ができません。。

    RedHatEL4.0で下記手順で公開鍵を置いても ServerAからServerBへのログインが、 パスワード認証となってしまいます(><) 1.ServerA,ServerBで、 同じ名前のユーザーを作りパスワードを設定しました。 2.ServerAでの作業 #ssh-keygen -t dsa #scp id_dsa.pub hoge@serverB:/home/hoge/.ssh/authorized_keys #ssh hoge@ServerB #known_hostに関してのプロンプトに、yesで答える ここで、公開鍵をServerBに設置したので、 パスワードなしでログイン完了!と期待していたのですが、 hogeユーザーのパスワード入力が聞かれてしまいます。。 原因は何でしょうか? 又、公開鍵認証でパスワードなしでログインするには、 同一ユーザー同一グループである必要があるのでしょうか?

  • 公開鍵の管理

    現在,sshサーバを管理しているのですが, ユーザそれぞれの公開鍵を/home/user_name/.ssh/authorized_keysに保存しています. ユーザが秘密鍵をなくしてしまったりした場合にかってに対応する公開鍵を交換されたくないので, どこかのディレクトリで一括に管理したいのですが,可能でしょうか? よろしくお願いします.

  • cronを使用したファイルバックアップについて困っています

    まだ、Linux OSに完全に慣れていなく皆様方のお知恵をお借りしたいと思っております。 現在、レンタルサーバー内にある、ディレクトリ/httpdocs/以下にある全ファイル(html,php,cgi,gif,jpg,swf…など)を、オフィス内にあるファイルサーバに定期的にバックアップ(全ファイルの取得)をしていこうと思っています。 このディレクトリの合計サイズは約200MBです。 本来であれば、rsync + sshで、あらかじめキーを交換しておく方法がベストだと思いますが、レンタルサーバ側がSSHを受け付けてくれません。(月々別途のお金を払うと使用できるのですが…) ちなみに、公開鍵を作成しscpコマンドも試してみたのですが、駄目でした。 今後、考えられる手段としてcron + ftpで行っていくのがベストな方法なのでしょうか。 また、参考になるシェルスクリプトなどございましたらご教授お願い致します。 ■ファイルサーバ システム概要 OS:Fedora Core 5 HDD:250GB Memory:1GB ■レンタルサーバ OS:RedHat Linux 2.6.9

  • Net::SSH::Perlについて

    Net::SSH::Perlを使って、以下のようにリモートマシン上のコマンドを実行しています。 my $ssh = Net::SSH::Perl->new("host"); $ssh->login("user", "pass"); ($out, $err, $exit) = $ssh->cmd("command"); "command"に失敗した場合は、$errにエラー内容が格納されますが、hostやuser、passが間違っていた場合は、Permission deniedとなって、プログラムが終了してしまいます。 hostやuser、passの間違いで$ssh->cmdを失敗した場合にエラーを取得する方法があれば教えてください。

    • ベストアンサー
    • Perl
  • リモートホストに画像だけコピーしたい

    お世話になります、シェルスクリプト初心者です。 当方では、sshの鍵接続でリモートホストに接続し scp若しくはsshで画像だけのコピーをしたいと考えています。 接続するユーザ: user(ssh鍵作成済で、鍵だけでsshに入れるようにした) ローカルホスト:192.168.11.101 画像パス:/home/user/img/(サブディレクトリがたくさんある)/*.jpg|.gif|.png リモートホスト:192.168.11.200 画像パス:/home/user/img/(サブディレクトリがたくさんある)/*.jpg|.gif|.png シェル: ------ #!/bin/sh for FILE in `find /home/user/img/ -regex ".*\.\(jpg\|png\|gif\|JPG\|GIF\|PNG\)"`; # do /usr/bin/scp -P 22 -i "/home/user/.ssh/id_rsa" -r $FILE user@192.168.11.200:$FILE; # do /usr/bin/rsync -av -e "ssh -i /home/user/.ssh/id_rsa" $FILE user@192.168.11.200:$FILE; done ------ ここで問題が起きました。 for文で画像パスであるファイルパスを探し そのファイルパスをscpまたはrsyncでファイルをコピーするんですが、 リモートホストにローカルホストとおなじディレクトリがない場合、 以下のエラーメッセージが返ってきてしまいます。 ------ building file list ... done rsync: push_dir#3 "/home/user/img/(サブディレクトリ)" failed: No such file or directory (2) rsync error: errors selecting input/output files, dirs (code 3) at main.c(545) [receiver=2.6.8] rsync: connection unexpectedly closed (8 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(463) [sender=2.6.8] ------ scpやrsyncで「ディレクトリがない場合、作成」をしたいのですが、 それはscpやrsyncのオプションで叶うものなのでしょうか。 または、他の方法で叶うものなのでしょうか。 ご教授をお願いいたします。

  • SSHでSCPコマンドをPASSなしで利用する方法についての質問ですが

    SSHでSCPコマンドをPASSなしで利用する方法についての質問ですが 下記のようなサイトを参考にして行ってみたのですが http://www.geocities.jp/turtle_wide/tools/sshpass.html http://www.turbolinux.co.jp/support/document/knowledge/152.html 何回やってもPASSを聞かれて(失敗して)しまいます。 local$ ssh name@remort.host name@remort.host's password: 状況はauthorized_keys2を作成し、すべての作業を完了している状態です。 sshd_configの設定が悪いのでしょうか? 特にエラーは出ていないようです。 環境は 共通部分 ユーザー名:同じユーザー名 プロトコル:SSH protocol version 2(DSA) クライアント側: OS:Red Hat Enterprise Linux ES 4 サーバ側: OS:Red Hat Enterprise Linux Server 5.5