5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【定期実行】XserverでのCron設定

Posted at

契約しているXserverでプログラムを定期実行し、Twitterのbotを作成しました。

その際に設定したことを備忘録としてまとめておきます。

定期実行したいファイルを作成してある状態から記述します。

1. ファイルをXserver上に配置

まずはXserver上にファイルを配置します。このファイルを実行するとTwitterのAPIを通してツイートされるようになっている状態のファイルです。

自分はWindowsならFFFTP、Macならcyberduckを使いますが、Xserverはブラウザからでもファイル管理ができます。

public_html以下の任意の場所に置きましょう。

2. ファイルのパーミッションを設定

これができていなくて引っかかることが多いと思います。
FTPソフトからでもブラウザからでもいいので、実行したいファイルのパーミッションを755にします。
書き込みは自分だけ、それ以外は誰でものパーミッションです。
755と入力してもチェックボックスで入力してもOK
スクリーンショット 2021-01-10 2.47.27.png

3. Cronを設定

Xserverのサーバー管理パネルにログインします。

アカウント -> Cron設定
スクリーンショット 2021-01-10 2.51.29.png

Cron設定追加タブから追加します。
スクリーンショット 2021-01-10 2.53.51.png

上の画像の例は毎日21時0分に実行するCron設定です。

分、時間、日、月、曜日

アスタリスク(*)

「毎~」のときに使います。(毎月、毎日、毎時など)
試してないですが、おそらく「分」を(*)にすると毎分実行されると思うので気をつけましょう。

複数指定したいとき

コンマ(,)区切りで指定します。
0分と30分に実行したいときは0, 30と指定します。

曜日

曜日の数字は以下のように指定します。
0=日曜日
1=月曜日
2=火曜日
3=水曜日
4=木曜日
5=金曜日
6=土曜日
7=日曜日

月木で実行したいなら1, 3と指定します。

コマンド

コマンドには定期実行させたいコマンドとファイルを指定します。
hoge.phpを定期実行させたいときは以下のようになりますが、これだとダメです。

php7.2 hoge.php   // phpバージョン7.2のコマンドでhoge.phpを実行する

php以外の言語でももちろんOKです(インストールされている場合は)

絶対パスを指定すること

コマンドもファイルも絶対パスを指定します。(コマンドは絶対パスじゃなくても良いかも)
先程の例だと以下のようになります。(hoge.phpがpublic_htmlの直下にある場合)

/usr/bin/php7.2 /home/サーバーID/ドメイン名/public_html/hoge.php

コマンドの絶対パスはネットで調べれば出ると思います。
ファイルの絶対パスはpublic_htmlの絶対パスが/home/サーバーID/ドメイン名/public_html/なのでそこから考えましょう。
または、実行したいファイルと同じ場所にecho __DIR__と書いたファイルを置いてブラウザからそのファイルにアクセスすると、そこの絶対パスが表示されます。

以上

本当はAWSとかで作りたいんですが、せっかくXserver契約してるから、、、とこっちばっか使っちゃいます。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?