Unixエポックでシステムの日付と時刻を設定する方法:初心者向けステップバイステップガイド
Unixエポックとは何か
Unixエポックは、1970年1月1日(木曜日)のUTC午前0時00分00秒に始まりました。それ以来、Unix系システムはこの起点からの経過秒数を数えることで時刻を管理しています。Unix本体や、Linux・FreeBSDなどの各種実装では、うるう秒を差し引いた「エポックからの正確な経過秒数」という形で時刻を記録しています。
この概念は、普段の作業ではユーザーやプログラマーの目に触れることはあまりありません。しかし、Unixエポック開始からの経過秒数さえわかれば、その値を使ってシステムの時刻を直接設定できるのです。操作にはコマンドラインインターフェースが必要です。Ctrl+Alt+F1〜F6キーで仮想端末を開くか、Ctrl+Alt+Tキーでグラフィカル端末を起動しましょう。Ubuntu Dashで「terminal」と検索するほか、LXDEやKDEでは「アプリケーション」→「システムツール」メニューから、Xfce4ではWhiskerメニューから起動することもできます。
方法1:GNU dateツールでUnixエポック時刻を設定する
時計を変更する前に、日付文字列が正しくフォーマットできているか確認しておくのがおすすめです。date -d '@1501959335' と入力してEnterキーを押すと、1970年1月1日からの経過秒数が、人間が読みやすい形式へと変換されます。「1501959335」の部分は任意の有効なUnixエポックタイムスタンプに差し替えてください。ここでは例として使っているだけで、記事の執筆中のある時点でのUnixエポック時刻でした。
実行すると、ローカルマシンのタイムゾーン付きで通常の日付と時刻が返ってくるはずです。内容を確認したら、date -s '@1501959335' コマンドで時計をこのタイムスタンプに合わせられます。もし「date: cannot set date: Operation not permitted」というエラーが現在の日付とともに表示された場合は、一般ユーザー権限で実行しようとしたことが原因です。sudo date -s '@1501959335' と入力してEnterキーを押せば、時刻を設定できます。例示した数字は、必ず有効なUnixタイムスタンプに置き換えてください。
なお、続行する前にroot権限を取得するため、パスワードの入力を求められます。
方法2:BSD系dateコマンドを使用する
*BSD系のオペレーティングシステムを使っている場合は、dateコマンドに別の構文が必要になります。FreeBSD、OpenBSD、NetBSD、さらにはDarwinの一部の実装も該当します。Linuxやその他のUnixライクなOSをお使いの方は、方法1の手順を利用してください。
1970年1月1日に始まったエポックからの経過秒数を変換するには、プロンプトで date -r 1501959335 と入力してEnterキーを押します。この場合も「1501959335」は任意の有効なUnixタイムスタンプに置き換えられます。
続いて date "$(date -r 1501959335 +'%y%m%d%H%M.%S')" と入力してEnterキーを押すと、エポックからの経過時間をもとに日付が設定されます。BSDベースのOSでは、新しい日付・時刻のフォーマットを明示的に指定する必要があるため少々複雑ですが、最終的な結果は同じです。新しい日付を設定するには、root権限が必要になるでしょう。
方法3:現在のUnix時刻を表示する
現在のUnixエポックタイムスタンプを確認したいときは、コマンドラインで date +%s を実行します。Unixエポック開始からの経過秒数として現在時刻が出力され、次の行に即座に表示されます。
グラフィカルな表示を好む方には、もうひとつの選択肢があります。コマンドラインで xclock -d -utime と入力してEnterキーを押してください。クラシックなXFree86アプリケーション群がインストールされていれば、ターミナルの上に浮かぶウィンドウが現れ、現在の秒数カウントをリアルタイムで確認できます。
著者について

Kevin Arrows(ケビン・アローズ)
Kevin Arrowsは、10年以上の業界経験を持つ高度な技術スペシャリストです。Microsoft Certified Technology Specialist(MCTS)の資格を保有し、最新のテクノロジートレンドへの深い情熱を持ち続けています。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど幅広い技術テーマについて執筆しており、複雑な技術的概念を明快かつ簡潔に説明する能力で高く評価されています。
-
SSHの「Could not resolve hostname(ホスト名を解決できません)」エラーを素早く解決する方法
SSHでリモート接続を試みた際、「Could not resolve hostname(ホスト名を解決できませんでした)」というエラーが表示されることがあります。このエラーに遭遇した場合は、まずネットワークに正しく接続されているかどうかを確認しましょう。Wi-Fiなどの無線接続を使用している方は、通信が安定して行えるだけの信号強度があるかも併せてチェックしてください。多くの開発者によれば、この種のエラーの最も一般的な原因は接続不良であり、タイプミスよりも頻繁に発生するといわれています。 接続状態に問題がないことが確認できたら、次に入力内容の誤りをチェックします。IPアドレスやリソースロケータの
-
Ubuntuで「lvmetadへの接続に失敗しました」エラーを解決する方法【原因と対処法】
Ubuntuは、OpenStackをサポートするクラウドコンピューティング分野で広く利用されている、無料のオープンソースLinuxベースOSです。6ヶ月ごとにアップデートがリリースされ、新機能の追加やパフォーマンス向上が継続的に行われています。しかし最近、「Failed to Connect to lvmetad, Falling back to Device Scanning(lvmetadへの接続に失敗しました。デバイススキャンへフォールバックします)」というメッセージが表示され、OS自体を起動できなくなるという報告が多数寄せられています。Ubuntuで「lvmetadへの接続エラー」が発