• 締切済み

timedatectlコマンドに関して

linux(CentOS7)のtimedatectlコマンドに関して 最初見たときにデフォルトが以下のような感じでした。 timedatectl Local time: Mon 2017-02-17 13:43:53 JST Universal time: Mon 2017-02-17 04:43:53 UTC RTC time: n/a Time zone: UTC (JST, +0900) NTP enabled: n/a NTP synchronized: yes RTC in local TZ: no DST active: n/a 「Local time」だけJST でyum updateした後に、「Local time」もUTCとなり時刻がおかしくなりました。 治す方法を探していると、 timedatectl set-timezone Asia/Tokyo で直せと書いているのですが、 それをすると時刻の刻みは治りますが、元通りでないのが釈然としません。 timedatectl Local time: Fri 2017-02-17 16:04:21 JST Universal time: Fri 2017-02-17 07:04:21 UTC RTC time: n/a Time zone: Asia/Tokyo (JST, +0900) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: n/a 元通りにする方法はありませんか。 それと、 Time zoneをUTCにしてローカルとしてJSTにするのと、 Time zoneそのものをJSTにするのとでは何が違いますか? 以上、よろしくお願いします。

みんなの回答

  • A1200hd40
  • ベストアンサー率52% (337/648)
回答No.1

まだ、回答が得られていないご様子なので。 >RTC time: n/a マザーボード上のリアルタイムクロックの値が拾えていませんねぇ。 これは仮想環境上の話になるのでしょうか? >NTP enabled: n/a 双方、ntpデーモンは動いていない感じですか。 >NTP synchronized: yes 操作前のこちらでは、同期を取る設定になってますね。 >NTP synchronized: no 操作後は同期を取っていない様子です。 近場の標準時NTPサーバと同期を取れば、普通にどちらかの(UTC/JST)の標準時を基準に、稼働中のシステム上の時刻調整ができるのですが。 ntpデーモンを使い、継続的に同期を取る方法も有りますし、ntpdateコマンド等で、その時々の必要に応じて同期を取ったりすることもできます。 "ntp同期 centos"で、1年内の情報の検索を行い、こちらを見つけましたので、ご覧ください。 http://web-dev.hatenablog.com/entry/linux/centos/time-jp >Time zone システム上で運用される標準時間の基準を与えるものです。 システム運用の目的によって、それぞれ個別のシステム毎に判断すべきものでしょう。 最近のディストロでは、RTC(リアルタイムクロック)をUTC(協定世界時) に設定し、運用するシステム上でタイムゾーン設定を反映させ、運用するデフォルト設定が多いようです。 ただ、個々の「地域の影響の大きなシステム・OS」を同時に扱う機械の場合、RTCから拾う時間ががUTCで設定してあると、色々不便(デフォルトでRTCをシステム時に選んでしまうことが多い)であるため、そのような場合には、RTCも地域の標準時(日本の場合はJST)に設定しておいたほうが宜しいかと。

関連するQ&A

  • C言語のtime_tに関して

    こんにちは。 今現在、C言語にてプログラミングを行っております。time_tを用いましたが、4月などの2桁目が0のは巧く取得できたのですが、日にちの2桁目が0にならず、空白となってしまいます。 一応、ソースを載せておきますが見辛いのが申し訳ないです。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> time_t timer; struct tm *local; struct tm *utc; extern char today[20]; extern char today2[20]; extern char today_year[10]; extern char today_month[2]; extern char today_day[2]; void day(){ char *ptr; /* 現在時刻を取得 */ timer = time(NULL); local = localtime(&timer); /* 地方時に変換 */ /* 地方時 変換後表示 */ printf("地方時: "); printf("%4d/", local->tm_year + 1900); printf("%2d/", local->tm_mon + 1); printf("%2d ", local->tm_mday); if(local->tm_mday<10) //system("pause"); // printf("%2d:", local->tm_hour); // printf("%2d:", local->tm_min); // printf("%2d", local->tm_sec); // printf(" %d\n", local->tm_isdst); /*****************************/ sprintf(today_year,"%4d", local->tm_year + 1900); sprintf(today_month,"%2d", local->tm_mon + 1); sprintf(today_day,"%2d", local->tm_mday); if((local->tm_mon+1)<=9) today_month[0]='0'; if((local->tm_mday+1)<=9) today_day[0]='0'; sprintf(today, "%s-%s-%s", today_year, today_month, today_day); sprintf(today2, "%s/%s/%s", today_year, today_month, today_day); //printf("%s",today); /*****************************/ // utc = gmtime(&timer); /* 協定世界時(UTC)に変換 */ /* 協定世界時 変換後表示 */ // printf("\n\n\n\n協定世界時: "); // printf("%4d/", utc->tm_year + 1900); // printf("%2d/", utc->tm_mon + 1); // printf("%2d ", utc->tm_mday); // printf("%2d:", utc->tm_hour); // printf("%2d:", utc->tm_min); // printf("%2d", utc->tm_sec); // printf(" %d\n", utc->tm_isdst); return; } どなたかご教示下さい。

  • ntpdateで時刻同期すると一日ずれます。

    Linuxでntpdateで時刻同期すると一日ずれます。 # date 2010年 11月 11日 木曜日 09:34:21 JST 今日は11月10日です。 # date -s 20101110 2010年 11月 10日 水曜日 00:00:00 JST #ntpdate -b ntp.nict.jp 11 Nov 09:35:24 ntpdate[22948]: the NTP socket is in use, exiting # date 2010年 11月 11日 木曜日 09:35:28 JST なぜか11日にもどされます。 # hwclock --show # 何も表示されません。 # cat /etc/sysconfig/clock ZONE="Asia/Tokyo" UTC=true ARC=false 他のサーバにつないでも同様でした。 # date -s 20101110 2010年 11月 10日 水曜日 00:00:00 JST #ntpdate -b eric.nc.u-tokyo.ac.jp 11 Nov 12:30:03 ntpdate[23329]: step time server 130.69.251.23 offset -86403.273202 sec # ntpdate -b 11 Nov 12:31:01 ntpdate[23331]: no servers can be used, exiting # ntpdate -b ntp.sut.ac.jp 11 Nov 12:31:13 ntpdate[23332]: step time server 133.31.180.6 offset -86403.269931 sec # ntpdate -s ntp.sut.ac.jp # date 2010年 11月 11日 木曜日 12:31:33 ntpはもちろんはいっています。 #rpm -qa ntp ntp-4.2.2p1-9.el5.centos.2.1 よろしければアドバイスをいただけないでしょうか?

  • 秒を日付に変換

    秒を日付に変換する関数として、 以下のものを見つけました。 =TEXT(a1/86400+("1970/1/2"*1-"1900/1/1"*1+"9:0"*1),"yyyy/mm/dd hh:mm:ss") この関数で変換するとこのようになります。 1384664725 2013/11/17 14:05:25 JST ユニックスタイムといって1970年1月1日 00:00 UTCが起点になっているそうですが、 1601年1月1日 00:00 UTC を起点に計算する関数はどうやって作れば良いのでしょうか? 130291350118733 が 2013/11/17 13:10 JST になります。

  • ブレードサーバーでの自動時刻設定について

    仕事で使用しているブレードサーバー(HP ProLiant BL460c G1)で、 インターネット時刻サーバーとの同期がうまくいきません。 「time.windows.com と同期中にエラーが発生しました。」 と出ます。 他にも、 ・time.nist.gov ・time-nw.nist.gov ・ntp.jst.mfeed.ad.jp 等を試してみましたが、結果はどれも同じでした。 他にも、コマンドプロンプトで以下のコマンドを入力しましたが、 やはり結果は変わりませんでした。 -- net time /setsntp:"ntp.nict.jp ntp.jst.mfeed.ad.jp ntp.ring.gr.jp" コマンドは正常に終了しました。 net stop w32time Windows Time サービスを停止中です. Windows Time サービスは正常に停止されました。 net start w32time Windows Time サービスを開始します. Windows Time サービスは正常に開始されました。 w32tm /resync 再同期のコマンドを送信: local computer... 時刻データが利用できなかったため、コンピュータは同期をとり直しませんでした。 -- 問題はサーバーが特殊(ブレードサーバー)だからかと思いますが、 同様の問題が見当たりませんでした。 どなたか対応方法をご存知ないでしょうか?

  • Perlでの Timeの足し算

    時間の足し算をやりたい。訳あってライブラリが使えません。 方法は無いでしょうか? 仮にライブラリが使えるなら、下記のようでうまく行っています。 --------------------------------------------------- use Time::Local; $year=2008; $mon =10; $mday=24; $hours = 23; $min = 0; $sec = 0; $time = timelocal($sec, $min, $hours, $mday, $mon - 1, $year); $a1=($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time ); $mytimeORG= sprintf("%04d/%02d/%02d %2d:%2d", $year + 1900, $mon +1, $mday,$hour,$min); print "$mytimeORG\n"; ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time + 32400); #9H加算 $mytime9H= sprintf("%04d/%02d/%02d %02d:%02d", $year + 1900, $mon +1, $mday,$hour,$min); print "$mytime9H\n"; ---------------------------------------------

    • ベストアンサー
    • Perl
  • ntpdate: デバッグモードでしか応答が取れません

    ■1■あるntpサーバに対して下記を実行すると、 % ntpdate 133.xxx.x.xxx Looking for host 133.xxx.x.xxx and service ntp host found : xxx.xxx.co.jp 7 Apr 13:29:46 ntpdate[11129]: no server suitable for synchronization found とエラーとなるのですが、 ■2■デバッグ(?)オプションを付けると、 % ntpdate -d 133.xxx.x.xxx 7 Apr 13:46:25 ntpdate[11146]: ntpdate 4.2.0@1.1161-r Fri Apr 7 11:35:09 JST 2006 (1) Looking for host 133.xxx.x.xxx and service ntp host found : xxx.xxx.co.jp transmit(133.xxx.x.xxx) receive(133.xxx.x.xxx) : delay 0.03502, dispersion 0.00020 offset -525.818942 7 Apr 13:57:03 ntpdate[11149]: step time server 133.xxx.x.xxx offset -525.818942 sec と、応答は返ってくるようです。 デバッグモードではなく、正式にntpサーバの時刻をこのLinuxサーバに 設定したいのですが、上記の状況を回避するには、どのようにすれば良いでしょうか。 よろしくお願いします。 ■補足■ ・Red Hat Linux release 8.0 を使っています。 ・ntpdは登録していないです 以上よろしくお願いします。

  • ローカルだと改行されるのに、サーバーにアップすると半角・が…

    ローカルでテストすると、きちんとログファイルに改行と認識され、 NAME=***&……TIME=20040515 NAME=***&……TIME=20040516 のように書き込まれますが、サーバーにアップすると、 NAME=***&……TIME=20040515・NAME=***&……TIME=20040516・ のようになってしまいます。 書き込みは以下のようにしています。 open (FILE2,">>log.log"); @fw = "NAME=$FORM{'NAME'}&…&TIME=$year/$mon/$day $hour:$min:$sec&TIME2=$year$mon$day$hour$min$sec\n"; print FILE2 @fw; close(FILE2); なぜでしょうか? 解決策お願いします(><)

    • ベストアンサー
    • Perl
  • CentOSのNTP時刻同期エラー

    表題の通りCentOSのNTPサーバーエラーについて質問します。 状況 CentOSでNTPを使用していたのですが、気がついた時には NTPサーバーがエラーで止まっていました。  内容を確認してみると、/etc/ntp.confで設定している同期するサーバーと ntpq -p で確認するサーバーが違っている事に気が付きました。 このntpqコマンドで確認できるサーバーは、昔使っていた古いアドレスの物で 現在は使われていない為に今回のエラーになっていると考え、 設定されている場所を探したのですが、見つからなかった為、 yum erase ntp* で一旦全て削除して、 yum install ntp* で再インストールを 行いましたが、状態が変わりませんでした。 現在のntp.confの内容============================================== # Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. #restrict default kod nomodify notrap nopeer noquery #restrict -6 default kod nomodify notrap nopeer noquery # Permit all access over the loopback interface. This could# be tightened as well, but to do so would effect some o f# the administrative functions.#restrict 127.0.0.1 #restrict -6 ::1 #ipv6 # Hosts on local network are less restricted. # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org server 133.100.9.2 #clock.nc.fukuoka-u.ac.jp server 210.173.160.27 #ntp1.jst.mfeed.ad.jp server 202.224.32.4 #ntp.asahi-net.or.jp #broadcast 192.168.1.255 key 42 # broadcast server #broadcastclient # broadcast client #broadcast 224.0.1.1 key 42 # multicast server #multicastclient 224.0.1.1 # multicast client #manycastserver 239.255.254.254 # manycast server #manycastclient 239.255.254.254 key 42 # manycast client # Undisciplined Local Clock. This is a fake driver intended for backup # and when no outside source of synchronized time is available. #server 127.127.1.0 # local clock #fudge 127.127.1.0 stratum 10 # Drift file. Put this in a directory which the daemon can write to. # No symbolic links allowed, either, since the daemon updates the file # by creating a temporary in the same directory and then rename()'ing # it to the file. driftfile /var/lib/ntp/drift # Key file containing the keys and key identifiers used when operating # with symmetric key cryptography. keys /etc/ntp/keys # Specify the key identifiers which are trusted. #trustedkey 4 8 42 # Specify the key identifier to use with the ntpdc utility. #requestkey 8 # Specify the key identifier to use with the ntpq utility. #controlkey 8 ======================================================== ntpq -p で確認した内容==================================== remote refid st t when poll reach delay offset jitter ============================================================================== clock.nc.fukuok .GPS. 1 u 45 64 1 25.585 22436.7 0.002 ntp1.jst.mfeed. 210.173.176.251 2 u 44 64 1 5.803 22465.5 0.002 orion.asahi-net 133.243.238.244 2 u 43 64 1 5.787 22495.2 0.002 ============================================================================== この時、/var/log/messageには何もログは表示されていません。 また、ntpdate -u -b clock.nc.fukuoka-u.ac.jp で強制的に時刻同期させると 以下のように時刻の同期ができます。 29 Sep 22:17:15 ntpdate[29572]: step time server 133.100.9.2 offset 27.863054 sec 以上の内容から、ntpq -p で表示されている古いサーバー情報がどこかに 残っている為に、今回のエラーになっていると思えるのですが、 自分では、どこに残っているのかがわからない為、 皆様のお知恵をお借りできれば幸いです。 宜しくお願い致します。

  • 次のカウンターのCGIプログラムで間違っているところはどこでしょうか?

    参考書を手にしながら次のようにCGIを作成しましたが、上手く動きません。 個人別カウンター(アクセスしてきた個人ごとにカウンターが変わる)CGIです。 いろいろ調べたのですが、どこが間違っているのか分からなくなりました。 どうぞお願いいたします。 ======= #!/usr/local/bin/perl $cookie = $ENV{'HTTP_COOKIE'}; @array = split(/; /, $cookie); foreach $tmp (@array){ ($key, $value) = split(/=/, $tmp); if($key eq 'count'){ $count = $value; } } if( $key == ""){ $count = 0; } $count++; ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time + 60*60*24*30); @day = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "sat"); @month = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Set", "Oct", "Nov", "Dec"); $expireDate = sprintf("%s\, %02d\-%s\-%04d %02d:%02d:%02d GMT", $day[$wday], $mday, $month[$mon], $year+1900, $hour, $min, $sec); print "Content-Type: text/html\n"; print "Set-cookie: count=$count; expires=$expireDate \n\n"; Print "<html>\n"; Print "<title>counter4</title>\n"; print "<body>\n"; print "<h1>個人別カウンター</h1>\n<hr />"; print "あなたは$count回目のご訪問です。\n"; print "</body>\n"; print "</html>"; exit;

    • ベストアンサー
    • CGI
  • CGIのライブラリ表示について。

    初心者で申し訳ございません。 今現在、参考書を読みながら時間を表示するCGIを作っています。 フォルダ"time1"に二つのファイル"time1.html"と"time1.pl"があります。 それぞれのファイルは、本を参考に次のように記述しています。 ===time1.html=== <html> <title>time1</title> <body> <h1>時間を表示する</h1> <hr /> <!--#exec cmd="./time1.pl"--> </body> </html> ====== ===time1.pl=== #!/usr/local/bin/perl ($sec, $min, $hour, $day, $mon, $year, $wdy, $yday, $isdst) = localtime(time); @youbi = ("日", "月", "火", "水", "木", "金", "土"); $year += 1900; $mon++; print "$year-$mon-$day, @youbi[$wdy], $hour:$min:$sec\n"; exit; ====== 以上をIE7で表示しますと、 「時間を表示する」は表示されるものの、.plファイル内の時間が表示されません。 何かやり残していることがありますでしょうか。 申し訳ございませんが、よろしくお願いいたします。

    • ベストアンサー
    • CGI