以下手順でPHPからSSH接続が可能になる。
PHPで外部サーバにSSH接続する方法
【01】PHPの暗号通信ライブラリphpseclibをダウンロード。
【02】zipファイルを解凍して、接続用のphpファイルを作成(ここではtest.phpとする)。
【03】以下をtest.phpにコピペ
include 'Net/SSH2.php'; $ssh = new Net_SSH2('接続先のIPやドメイン'); if (!$ssh->login('ID','パスワード')) { exit('ログイン失敗'); } echo $ssh->exec("コマンド1"); echo $ssh->exec("コマンド2"); echo $ssh->exec("exit");
それをcronで実行する方法
で、上記をcronで実行する場合は、Devasなどの置換ツールを用いて、パスを書き換えてあげる必要がある。
具体的な手順としては、test.phpを以下のように変更した後、
# 絶対アドレスの定数化 define("Z_URL",__DIR__); include Z_URL.'/Net/SSH2.php'; $ssh = new Net_SSH2('接続先のIPやドメイン'); if (!$ssh->login('ID名','パスワード')) { exit('ログイン失敗'); } echo $ssh->exec("コマンド1"); echo $ssh->exec("コマンド2");<br>echo $ssh->exec("exit");
解凍した全ファイルを対象に、以下の一括置換を施す。
include ' → include Z_URL.'/
include_once ' → include_once Z_URL.'/
include_path(' → include_path(Z_URL.'/
で、cronにコマンドを設定する。(以下例だと、毎日1時27分に実行して、日付.logを残す)
(例)27 1 * * * crawler/bin/test.php > /log/`date +\%Y\%m\%d`.log 2>&1
以上!
コメント