- ベストアンサー
cronによるgriveの実行について
- cronを使用してGoogleDriveのフォルダを定期的に同期する方法について説明します。
- cronでgriveを実行する際に発生する問題とその解決策について説明します。
- cronでgriveを実行する手順と注意点について説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>crontabには以下のように記述しました。 >*/15 * * * * /foo/bar/bin/grive.sh crontabでPATH設定していますか? >また、/foo/bar/bin/grive.shは以下のようになっています。 >#!/bin/sh >cd /foo/bar/googledrive/ >grive griveコマンドをフルパスで指定したらどうなりますか? >直に端末から「/foo/bar/bin/grive.sh」と打った時には正常に実行されることを確認済みです。 端末にログインする時(シェルが起動した時)に.bashrcなりでPATHが設定されていると思われます。 対して、cronの場合は明示的に記述しないとPATHは設定されていないでしょう。 # デフォルトのものが設定されている可能性はあるかも知れませんが。 >また、/foo/bar/bin/grive.shの中身を以下のように置き換えた場合は実行されて、ディレクトリも生成されました。 >#!/bin/sh >mkdir ~/testdir では… #!/bin/sh printenv > /tmp/env とかやって、どんな環境変数が設定されているか確認してみてはどうでしょうか? PATHがどのように設定されているか確認できると思われます。 >Jan 21 10:15:01 bar CRON[28560]: (CRON) info (No MTA installed, discarding output) cronから起動したプロセスが、何らかの出力を行ったようですが…通常であればメールで通知されます。 が、メールサーバが設定されていない為、破棄されたようです。 # sendmailかpostfixをデフォルト状態でインストールしておけば、ローカル配信くらいはやってくれるかと思われますが…。 # mailxなりのパッケージで端末からmailコマンドが使えるかと。
その他の回答 (1)
- Wr5
- ベストアンサー率53% (2173/4061)
>仰るとおり、cronにPathが通っていなかったようです。 >ちなみに、cronにPathを通すにはどうすればよいのでしょうか? そのまま「cron PATH」でWeb検索してみてはどうでしょうか?
お礼
検索したら通し方書いてあるサイトたくさんありました^^; 失礼しました。 回答ありがとうございました。 非常に助かりました!
補足
回答ありがとうございます。 > griveコマンドをフルパスで指定したらどうなりますか? cronを使ってgriveが実行出来ました! > printenv > /tmp/envの出力 HOME=/foo/bar LOGNAME=bar PATH=/usr/bin:/bin LANG=ja_JP.UTF-8 SHELL=/bin/sh PWD=/foo/bar 仰るとおり、cronにPathが通っていなかったようです。 ちなみに、cronにPathを通すにはどうすればよいのでしょうか? > # mailxなりのパッケージで端末からmailコマンドが使えるかと。 mailxはインストールできなかったので、sendmailとmailutilsをインストールしたところ、メールが送信され、確認することができるようになりました。