備忘録1、FreeBSDのdate関数と変数代入
FreeBSDにおいてdate関数の出力結果を変数に代入する方法がわからなかったので、chatGPTに聞いてみた。
FreeBSDでは、dateコマンドを使用して現在の日付や時刻を取得し、変数に代入することができます。
以下に、その例を示します。
# 現在の日時を取得し、変数に代入する例
current_date=$(date "+%Y-%m-%d")
current_time=$(date "+%H:%M:%S")
echo "現在の日付は $current_date です。"
echo "現在の時刻は $current_time です。"
これを使って、ESP32-CAMで撮影したimgファイルを定期的にarchive fileに移動するシェルスクリプトを作成し、さくらのサーバー ./wstat/job_daily3.shに追記した。追記スクリプトは下記の通り。
##### mv_file_iotcam.sh #####
# ファイルの移動元ディレクトリ
source_dir="./iot-cam/uploads"
# ファイルの移動先ディレクトリ
destination_dir="./iot-cam/archive_image"
# ubuntu --> B4DAY=`date -d '-4day' "+%Y-%m-%d"` ;`` <-- shift+@
# BSD format: 10日前の作成ファイルを移動する
B10DAY=$(date -v -10d "+%Y-%m-%d")
mv ${source_dir}/${B10DAY}* ${destination_dir}/
備忘録2、WSL2(Windows Subsystem for Linux)の時刻合わせ
WSL2のUbuntuの時刻がかなりの勢いでずれる。これはWSL2ではHyper-Vを利用して完全なエミュレーションでLinuxカーネルそのものが動作するので、仮想マシンとしてWindowsから独立したからだと思われる。ネット記事でもこの時刻合わせの問題が取り上げられている。
その対処方法としては、WSL2を起動した時点で毎回、”sudo hwclock -s”コマンドを打ち込んでいたが、パスワードを入れるのも面倒なので、起動時に自動的にsudoコマンドなしで時刻合わせできるようようにした。
1、/etc/sudoersにhwclockコマンドをパスワードなしで実行できるように設定
sudo visudoコマンドを実行して、/etc/sudoersファイルを下記のように編集
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
%sudo ALL=(ALL) NOPASSWD: /usr/sbin/hwclock -s #この行を追加
2、~/.bashrcにhwclockコマンドを追加
ホームディレクトリにある.bashrcファイルの最後に下記の行を追加
# sync HW clock
sudo hwclock -s
これで時計合わせのわずらわしさから解放された・・・。
参考記事:
Windows 10でLinuxを使う(WSL2) - QiitaWindows 10のWindows Subsystem for Linux 2(WSL2)を使うと、Windows 10上で、超お手軽にLinuxで遊ぶことができる。How to Install必要条…
コメント