やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ntpdateコマンドエラー Name or service not known (-2)

レアケースと思われる。一応メモ。

スクリプト

#!/bin/sh
sudo ntpdate -u ntp.jst.mfeed.ad.jp

ラズパイで時刻合わせに使っていたbashスクリプト

実行エラー

Error resolving ntp.jst.mfeed.ad.jp: Name or service not known (-2)
 4 May 19:44:56 ntpdate[1222]: Can't find host ntp.jst.mfeed.ad.jp: Name or service not known (-2)
 4 May 19:44:56 ntpdate[1222]: no servers can be used, exiting

分析

180日間、1日1回ほどは実行していたと思うが、初めて出たエラー。

何かしらのタイミングが悪かったのか、サーバーが見つからなかったらしい。再度やり直したらエラーなく実行できた。

(-2)の数値はエラーコードと思われる。

改善

以下のような改善案が考えられる。

中断

[ $? -ne 0 ] && { echo "エラー; return $?; }

$?で直前のエラーコードを取得できる。これを利用し、エラー時に処理を中断する。

ループ

sudo ntpdate -u ntp.jst.mfeed.ad.jp
while [$? -ne 0]; do
    sudo ntpdate -u ntp.jst.mfeed.ad.jp
done

成功するまで繰り返す。