処理記述は難しい

何故かここ数ヶ月の間で一番の目覚め、すっきり。
グリナ飲んでいませんけど・・・、昨日スタ丼屋で酒がド!ストライクに入り、9時すぎに深い眠りにつきました。
普段、物音一つで目覚めますが、良い酔い方をして眠ると何が起きても起きないほどに、深い眠りにつけるタイプです。

妻の弁当を作り送り出す。

学習を進める。
条件分岐、繰り返し、サブルーチンの記述を再確認。
処理記述を丸飲みするのは、どうやらこの脳では無理なようなので、仮定の話を作り、その目的としてオリジナルのスクリプトを組んでみました。

プロジェクト名:ログのバックアップをちゃんと毎日取り、忘れないように頑張ります

実行ファイル作成とか追記
etc/crontab コマンドの自動実行を指定するファイルに追記
iftest.sh ログファイルを圧縮してコピー
backyn.sh ログファイル作成チェック


/etc/crontabの内容

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

00 0 * * * root run-parts /home/iftest.sh
00 23 * * * root run-parts /home/iftest.sh
(毎日0時と23時にiftest.shを自動実行するようにした。サーバーは24時間稼働という状況での話)


iftest.shの内容

#!/bin/bash

if [ -f backup`date +%Y%m%d`.tar.gz ]

then
source /home/backyn.sh

else
tar zcvf backup`date +%Y%m%d`.tar.gz /var/log/
fi


backyn.shの内容

#!/bin/bash

while [ 1 ]; do
/bin/echo -n "今日の日付でバックアップファイルが作成済みだが、別名で保存するのか
? Yes/No: "
read line
case $line in

[yY][eE][sS])
tar zcvf backup`date +%Y%m%d%s`.tar.gz /var/log; break
;;

[nN][oO])
echo "別名バックアップファイルは作らず終了した!ではでは。" ; break
;;
esac
done

24時間稼働サーバーで、0時にその日付のログファイルを圧縮した形でコピーします(内容は前日分になりますが・・・)。
同日23時にチェックが動き、どういう訳か、0時に取っていた当日ログファイルがない場合、年日付時間にプラスして秒数を加えた圧縮ログファイルを作成します。(0時ファイルとの差をファイル名でも確認できるようにするため)
23時の時点で0時のログファイル作成に問題がない(ファイルができている)場合、今日の日付でバックアップファイルが作成済みだが、別名で保存するのか? Yes/No とタメ口で聞いてくる、という内容。
if then else 構文やらwhile read do case も同時に覚えられてましたが、3日掛りましたし、正直脳内の情報整理が必要です。