Cronがutcで動いてる場合に

Centosでtimezoneの設定が日本時間にしているのにcronが指定時刻に動かず調べました。
/var/log/cronを見るとログの時間が-9時間。
JSTで動いてないっぽいです。

以下のコマンドでcronのログの時刻も含めて治ります。

1
2
3
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
service crond restart
service rsyslog restart

itamaeのrecipeも修正

1
2
3
4
5
6
7
8
9
10
11
12
13
14
execute "change time zone" do
  user node[:user]
  command <<-EOF
    sudo cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
  EOF
  not_if "date | grep 'JST'"
end

# cronとlogにも反映(再起動)
%w(crond rsyslog).each do |serv|
  service serv do
    action :restart
  end
end

Comments