忍者ブログ
Insights/Ideas/Interactions ITとSocialMediaについて書くブログ
人気blogランキング

↑↑↑クリックお願いします!↑↑
カウンター

プロフィール
HN:
よっぱ
性別:
非公開
自己紹介:
よっぱです。
いや、別に酔っ払ってませんけど。なにか?

プロフィール
カレンダー
02 2017/03 04
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
ブログ内検索
アクセス解析
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

続いて3度目の備忘録。
cronの設定はサーバごとに使える使えないの違いはあれど、設定できる場合の設定方法は基本同じだと思います。


準備するもの
・テスト用の環境
home直下で行ってもいいですが、何かあっても嫌なのでテスト用のディレクトリを作成。
mkdir -p ~/test

・動かしたいスクリプトファイル
用意したのはこんなファイル(test01.sh)。置くのは上で作成したtestディレクトリ。中身はこんな感じ。
echo "`date` : executed automatically." >> $HOME/test/crontest.txt
echo "`date` : 1 hours check." >> $HOME/test/crontest.txt
スクリプト実行時には$HOME/testディレクトリ下のcrontest.txtというファイルに、cron起動時にログが残ります。

また、スクリプトファイルのパーミッション設定を変更して、スクリプトを実行可能にするのを忘れずに。
今回はテストなので700で問題ないですね。
chmod 700 ~/test/test01.sh
これで設定が変更されたはずです。実行権が付与されていたら、シェルスクリプトとして実行できるはずなので試してください。
~/test/test01.sh

・実行結果の確認
スクリプト実行後、同ディレクトリ内にcrontest.txtというファイルが作成されており、中身がこのようになっていればスクリプトはOKです。
Tue Oct 13 05:39:49 JST 2009 : executed automatically.
Tue Oct 13 05:39:49 JST 2009 : 1 hours check.

cronの設定(GUI編)
ということで、まずはGUIからの設定。設定の流れは以下の通り。
  1. さくらインターネットのサーバコントロールパネル >> cron設定ファイルの編集 を開きます。
  2. 「新規項目の追加」をクリック。
  3. 「実行コマンド」に“/home/**********/test/test01.sh”と記述。(※**********は自分に割り当てられたディレクトリ名です)
  4. 「実行させる日時」に実行タイミングを設定。今回は“月=*, 日=*, 時間=*, 分=*/10, 曜日指定なし”にします。
  5. 送信ボタンを押下。これでOKです。
設定が完了しているか、確認のために、コマンドラインから、作成されるファイルであるcrontest.txtを確認します。
cat ~/test/crontest.txt
上で試した実行ログに続いて、cronによる実行時の記載が増えていればOKです。
Tue Oct 13 05:39:49 JST 2009 : executed automatically.
Tue Oct 13 05:39:49 JST 2009 : 1 hours check.
Tue Oct 13 05:50:01 JST 2009 : executed automatically.
Tue Oct 13 05:50:01 JST 2009 : 1 hours check.

cronの設定(CUI編)
続いてコマンドラインから設定する方法。
恐らくGUIからの設定だと、5件以上のcronの登録ができないはずです。5件以上登録する場合はこちらを使ってください。

まずはコマンドラインから、現在設定されているcron設定を確認します。
crontab -l
上のGUIからの設定のみしている場合は、恐らく1件表示されるはずです。

ではcronの設定を変更します。
crontab -e
あとはviで記載を変更するだけです。


日時の設定方法
これまで編集してきたcronの設定ファイルは、次のような構成になっています。
分     時間      日      月      週      パス
0       */1         *         *        *        /home/**********/test/test01.sh
*は毎時(毎日)実行を意味し、数字は時間指定になります。一定時間間隔での繰り返し実行は“*/数字”を指定します。

またcronの日時設定には入力の規則がありますので、以下の内容を参考に必要な設定を行ってください。
フィールド
指定できる値
0-59, *
時間 0-23, *
0-12, *
0-12, *
曜日 0-7, *

設定内容 入力例
曜日
毎時 0 分に実行する 0 * * * *
2 時間おきに実行する * */2 * * *
0 時と12 時に実行する * 0,12 * * *
0 時から 12 時までの毎時 15 分に実行する 15 0-12 * * *
毎月 1 日の 0 時 0 分に実行する 0 0 1 * *
毎月 1 日または毎週金曜日の 23 時 59 分に実行する 59 23 1 * 5


例えば、下の例の場合、毎日毎時15分にhogehoge01.shが実行されます。
15      *         *       *       *       /home/**********/test/hogehoge01.sh
下の例の場合、水曜日と土曜日の12時にhogehoge02.shが実行されます。
0        12      *       *       3,7     /home/**********/test/hogehoge01.sh

勘違いしてほしくないこと
それはcronの設定について。
さくらの設定画面にもこう書かれています。
CRON機能は【上級者向け】です。
CRONの設定を誤った場合、思わぬ負荷をサーバに与えることになります。
必要がなければ変更しないでください。
たまにこういう技術を少しだけかじった程度の知識で使う人を見ます。
例えばGUI上で設定できるようになって、設定した後、GUIが使えなくなったらどうやってcronを止めますか?
もしそれがとても重大な問題だったら?
何か問題があったときに「CUIは使えないから」では済まされないかもしれません。

知識を膨らますために技術を試すのは良いことかもしれません。でもその前に、何か問題が起こったときの対処法を理解しておくのは最低限必要なマナーです。
使うのであれば100%理解した上で使うこと。それだけは守ってください。


関連記事
さくらインターネットのレンタルサーバでbashを使う方法
さくらインターネットのレンタルサーバでのbashの起動時設定
PR
続いてこれも備忘録。
デフォルトのシェルをbashに変えたついでに、ログイン時の設定も変更。


.bash_profileファイル設定
まずはログイン時の設定。
普通通り.bashrcファイルを読み込ませます。

# ./.bash_profile

# Get the aliases and functions
if [ -f $HOME/.bashrc ]; then
source $HOME/.bashrc
fi

.bashrcファイル設定
次に.bashrcの設定。

 # ./.bashrc

# bash basic configration file
umask 022
ulimit -c 0

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$HOME/bin

PS1="\u[\h:\w]$ "

alias cp='/bin/cp -i'
alias hist='history 20'
alias la='/bin/ls -AFs'
alias ll='/bin/ls -lF'
alias ls='/bin/ls -F'
alias lsa='/bin/ls -d .*'
alias mv='/bin/mv -i'
alias rm='/bin/rm -i'
alias x='exit'

他にも.bash_loginとか.profileとかあるけど
システム上の優先順位を考えたら、.bash_profileに記述した方がベターですね。
ちなみに、ログイン時に読み込まれる設定ファイルは、「/etc/profile」「~/.bash_profile」「~/.bash_login」「~/.profile」の4つがありますが、最初の「/etc/profile」は、全ユーザが対象なので、一般ユーザでの記載変更は不可能。個別ユーザ設定で変更可能なのは、「~/.bash_profile」「~/.bash_login」「~/.profile」に限られます。
なので、その中で一番優先順位が高い「~/.bash_profile」を利用するのが一般的です。

ちなみに対話型シェルの起動時には、.bash_loginも.bash_profileも読み込まれません。読み込まれるのは.bashrc。ってことは結局設定ファイルが分散しちゃうわけだから、上記みたいに内部的にコールしてたりするんですね。

  path 優先順位
ログイン時
(通常)
対話型シェル
起動時
説明
profile /etc/profile 1  
初期設定ファイル
全ユーザーに適応される
 
.bash_profile ~/.bash_profile 2  
ログイン時に読み込まれる
.bash_login ~/.bash_login 3   ログイン時に読み込まれる
.bash_profileが存在しない場合に利用される
.profile ~/.profile 4   ログイン時に読み込まれる
.bash_profile、.bash_loginが存在しない場合に利用される
 
.bashrc ~/.bashrc -   対話型シェル起動時に読み込まれる 
 



関連記事
さくらインターネットのレンタルサーバでbashを使う方法
メモ程度ですが。
とりあえずデフォルトはFreeBSDなのでcsh。ログイン後に呼び出すとかめんどくさいし、せめてデフォルトをbashかzshに変えたかったのでちょっと整理。

 % chsh -s [使用するシェル] [ユーザ名]

たとえばbashにするなら、
 % chsh -s /usr/local/bin/bash

ユーザー名は、自分自身なので省略。

各シェルのパスはこの通りです。
Bourneシェル系 sh /bin/sh
bash /usr/local/bin/bash
zsh /usr/local/bin/zsh
Cシェル系 csh /bin/csh
tcsh /bin/tcsh

/etc/shellsを見ればすぐにわかるんですけどね。
他にもkshとか入っててもおかしくないと思うんだけど、さくらのレンタルサーバでは見つかんなかったなぁ。
google検索
はてな注目エントリー
あわせて読みたい
あわせて読みたいブログパーツ
SiteStock


フィードメーター - よっぱ主義。 (β version)
検索ワード








Powered by Ninja Blog    template by Temp* factory    icon by MiniaureType

忍者ブログ [PR]