【UNIX】unzipコマンドがcronで実行できない

このQ&Aのポイント
  • さくらインターネットのCRON機能を使用してPHPスクリプトを自動実行しています。しかし、unzipコマンドを実行する際に「unzip: not found」というエラーが発生しています。
  • phpを直接ブラウザ上で実行する場合は正常に動作しますが、CRON上で実行する際にエラーが発生します。
  • CRONのコマンド実行フォームに直接「cd /zipファイルのあるパス/; unzip -Z hoge.zip」と入力しても同じエラーが発生します。
回答を見る
  • ベストアンサー

【UNIX】unzip がcron で作動しない

さくらインターネットのCRON機能で cd (対象ディレクトリ); /usr/local/bin/php -f (phpの名前)コマンドで PHPを自動的に実行しています。 その PHPには system("cd /zipファイルのあるパス/; unzip -Z hoge.zip"); というコマンドが実行されるようになっています。 (本来は、zipの解凍をしたいのですがテスト的にまず、ファイルの内容を表示) このphpを直接ブラウザ上で実行する場合は、うまく動くのですが CRON上で動かした場合は、unzip: not found というエラーが帰ってきます。 また、CRONのコマンド実行フォームにphp実行コマンドではなく、直接 "cd /zipファイルのあるパス/; unzip -Z hoge.zip" を実行しても unzip: not found が出てきてしまいます。 /home/[ユーザー名]/www/・・・と 絶対パスを指定しているので、パスは合っているかと思います。 unzip コマンドを実行するには予め何かを実行しないといけないのでしょうか? 何故、unzip: not found が出てしまうのか アドバイスよろしくお願いいたします。 サーバーOSバージョン FreeBSD 7.1-RELEASE-p16 i386

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.4

unzipを/usr/local/bin/unzip とフルパスで指定してください。 あるいは/usr/local/binにパスを通す。 方法:crontabの最初に、こう書く。 PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

yuzuru0024
質問者

お礼

回答ありがとうございます。 PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin; を記述に足したところうまくいきました! ありがとうございます。

その他の回答 (3)

  • wormhole
  • ベストアンサー率28% (1619/5654)
回答No.3

>unzip コマンドを実行するには予め何かを実行しないといけないのでしょうか? >何故、unzip: not found が出てしまうのか cron動作時のPATHにunzipのあるパスが含まれているかは確認されましたか。

yuzuru0024
質問者

お礼

回答有り難うございます。 which コマンドとかを使ったらいいんでしょうか? おそらく、含まれてなかったんだと思います。

  • suzukikun
  • ベストアンサー率28% (372/1325)
回答No.2

unzipがさくらのFreeBSD上にあるんですか?普通にインストールされたFreeBSDにはunzipコマンドは入ってないのでPortsからいれてきますが。

yuzuru0024
質問者

お礼

回答ありがとうございます。 さくらではunzipはサポートされているようです。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

まず「unzip にパスが通っているかどうか」を確認するんだろうなぁ. 「/home/[ユーザー名]/www/・・・と 絶対パスを指定しているので、パスは合っているかと思います。」 の「絶対パス」って, 何の「絶対パス」なの?

yuzuru0024
質問者

お礼

回答有り難うございます。

yuzuru0024
質問者

補足

>「絶対パス」って, 何の「絶対パス」なの? 回答有り難うございます。 ZIPファイルの置いてあるディレクトリのパスです。 "cd /zipファイルのあるパス/; unzip -Z hoge.zip" の zipファイルのあるパス の部分にあたります。

関連するQ&A

  • cronを使って定期的にtelnetでメールサーバーにアクセスしたい

    cronを利用して定期的にtelnetにてメールサーバーにアクセスするコマンド を教えていただきたいのです。 そのために/sbinなどにhogeというような実行形式のファイルをおきますよね。 そこに記述する内容なのですが、 -------------------------------------- #! /bin/sh PATH=?bin:/sbin:/usr/bin:/usr/sbin export PATH telnet メールサーバー名 110 とした後に以下のコマンドを実行するようにしたいのです。 user ユーザー名 pass パスワード list quit ---------------------------------------- しかし上記を箇条書きにして実際に # /sbin/hoge 実行するとメールサーバーに入るところで止まってしまい quitコマンドを入力すると以下のエラーが返ってきます。 /sbin/hoge: user: command not found /sbin/hoge: pass: command not found /sbin/hoge: list: command not found /sbin/hoge: quit: command not found 記述を間違えているのでしょうから当然のエラーとは思うのですが、肝心の 記述方法が分かりません。 これが解決しないとcrontabに記述できないわけでして、どなたか分かる方は いらっしゃらないかと思ったのです。 よろしかったら教えて下さいませ。

  • レンタルサーバーでcronの設定

    レンタルサーバでクロンの設定をしたいのですが・・・・ 実行したいファイル:http://hoge.com/cron.php 実行するコマンドがよくわかりません。 /home/UserName/public_html/cron.php と書いてみたのですが、ダメでした。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • Windows版のcronについて

    お世話になっております。 windows版のcronを使用し、windowsコマンドを自動で実行させたいと考えております。 OSはWindows2000です。crontabに下記の設定をしておりますが、動作しません。 0 * * * * move C:\hoge_dir\fuga.txt D:\hoge_hoge_dir Windowsのコマンドプロンプトで move C:\hoge_dir\fuga.txt D:\hoge_hoge_dir コマンドを実行すると問題なく動作するのですが、crontabで実行させると Error: The specified file was not found. というエラーが吐き出されております。 ファイルが見つからないらしいのですが、しっかりあります。 ディレクトリやファイル名を変えてためしたのですが、同じエラーになります。 どなたかお心当たりがあればぜひご教授の程、何卒、宜しくお願い致します。

  • unzipコマンドでエラー

    お世話になります。 下記のzipファイルをunzipコマンドを実行して解凍しようとしたらエラーが発生して解凍できませんでした。 ※zipファイルはwgetで取得しました。 解凍するファイル:  Joomla_3.3.3_in_Japanese.zip 実行したコマンド:  unzip Joomla_3.3.3_in_Japanese.zip -d /var/share/ 出力されたメッセージ: Archive:Joomla_3.3.3_in_Japanese.zip End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip:cannot find zipfile directory in one of Joomla_3.3.3_in_Japanese.zip or Joomla_3.3.3_in_Japanese.zip.zip, and cannot find Joomla_3.3.3_in_Japanese.zip.ZIP, period. Windows上でzipファイルを解凍したら下記のコメントが表示されました。 ※解凍した際に使用したソフトはExplzhです。 書庫にコメントがあります。 Made with WinArchiver Lite (http://www.tida.bz/macwinzipper) 申し訳ありませんがご教授いただけませんでしょうか。 宜しくお願いします。 では、あ失礼します。

  • CRON でPHPスクリプトをGET変数付きで実行したい

    CRONで下記のようにPHPスクリプトをGET値(hoge=1)を付加して実行したいのですがうまくできません。 */1 * * * * php path/myscript.php?hoge=1 CRONでPHPスクリプトを実行する場合、GET変数は使えないのでしょうか? ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • さくらインターネットのCRONでリダイレクションがおかしい

    さくらインターネットのCRONの設定で困っています。ページのCRONの説明のところでFreeBSDのマニュアルが紹介されていましたので、このカテゴリで質問させていただきます。 CRONコマンド入力のところには cd /home/info-network/www/programs; /bin/sh cron.sh のように入れます。 cron.shは ls > foo のように記述します。本当はPHPの出力ファイルを考えています。 FFFTPで/home/info-network/www/programsをみると、 fooはあるのですが、 表示させようとダウンロードしようとすると No such file or directory とでます。 cd /home/info-network/www/programs; ls > foo なら問題ありません。 アドバイスいただけると助かります。よろしくお願いします。

  • terminal unzip失敗について。

    http://kuji.vnox.net/download/ このサイトからナンバーズ3のCSVファイルをブラウザ経由でダウンロードして解凍はできるのですが MACのターミナルからcurlでダウンロードしてunzipさせたところ解凍ができないとエラーが出ました 解決させる事は出来ますでしょうか? terminal コマンドで curl -O http://kuji.vnox.net/files/numbers3-csv.zip ダウンロードできたら unzip numbers3-csv.zip ここでエラー。 Archive: numbers3-csv.zip End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of numbers3-csv.zip or numbers3-csv.zip.zip, and cannot find numbers3-csv.zip.ZIP, period. 色々調べてみると壊れているとかで。。。。 どうにか解決作はありませんか? 宜しく御願い致します。

  • PHPの定期実行[ Linux&cron ]

    Redhat9.0 PHP4.3.3を利用しています。 cronとコマンドライン版のPHPを利用して「1分毎に自分にメールを送る(実験用)」プログラムを実行させたいのですが、コマンドラインでは実行可能なのに、cronに登録してもメールが送られてきません。cronにはプログラムを実行したログが残っています。 完全に行き詰ってしまった。よろしくお願いします。 [ crontab ] * * * * * php /home/hoge/mail.php [ mail.php ] mb_language("Ja"); mb_internal_encoding("SJIS") ; $subject="test"; $content = "test"; $mailfrom="From:hoge@hoge.jp"; $mailto="***@hoge.com"; mb_send_mail($mailto,$subject,$content,$mailfrom);

    • ベストアンサー
    • PHP
  • PHPファイルをcronで実行するには…?

    ご質問させてください。 私はさ○らインターネットを使っていて、そこで cron設定をしてあるPHPファイルを実行したいを考えています。(このPHPファイルというのはメール送信のファイルです。) いろいろなサイトを探し回って設定の方法を調べたら、実行コマンドに cd /home/○○/www/; ./○○.php もしくは /usr/local/bin/php -f /home/○○/www/○○.php  と記述すれば大丈夫ということなのですが、これが全く起動していないようなのです。 そもそも cron ではPHPを起動できないのでしょうか?ご存知の方がいらっしゃいましたらご教授お願いいたします!

    • ベストアンサー
    • PHP
  • mamp環境でのcronの使い方で困ってます。。 

    いつもお世話になっています◎初めての投稿になります。 cronを使って毎日決まった時間にphpプログラムを実行させようとしているんですが、うまくいかずに困っています。。。 phpプログラムは、ネット上よりxmlデータを取得して、MySQLに格納するものになっています。 あまり詳しくないので知識不足な質問内容になってしまいますがよろしくお願いします。 crontab -e で書き込んでいて、多分、パスの部分が原因だと思います。。 0 5 * * * /Applications/MAMP/htdocs/hoge.php 0 5 * * * /usr/bin/wget http://localhost88/hoge.php の両方で試したんですがうまくいきません。。 というのも、php開発環境を作るときに楽に行うためにMAMPを使用して、実行したいphpファイルが /Applications/MAMP/htdocs/hoge.phpにあるのでパスの書き方がわからない状態です。 やはりMAMPで開発環境を作ったのが間違いだったのでしょうか。。。? できれば今の開発環境のまま制作を続けていきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP