【UWSC】BIOSから自動電源Onしデータバックアップ後、自動でShutdownするUWSCモジュールをスケジュール実行してみた件

目次

BIOSで自動電源Onし、Dosコマンドで「XCOPY 後、Shutdown」するだけ

毎日夜中に自動実行されるので、朝には前日分の共有ファイルの差分は全てバックされることになる。

が、

結論を先に言うとデータバックアップだけを使うなら、バッチファイルからのWindowsスケジューラーを使用するに限る!BIOSの「RTC Alarm」起動は必須だよ。

2024年余った部材でバックアップ用自作PCを組んで月1手動でバッチファイルを起動し、データセーブをしていたが2025年、Windowsネットワークをメインにすることに決定。Macでの動画編集作業を今はほとんど行っていないので、この結論になったが、今後動画編集作業により変化したとしても、Linuxサーバーを立てることは今後はしばらくしないという結論(簡易NASでのやり取りで今のところ十分、LinuxはZorinOS, Xubuntu, Lubuntu, Mintでの使用限定)

BIOSで自動電源Onにする設定は「RTC Alarm」を探せ!

今回使用するマザーはAsRockなので、

→ Advanced
→ ACPI設定
→ RTCアラーム電源On

で辿り着ける!

他マザーでは

Power Management Setup」
「Wake on RTC Alarm
「Resume By RTC Alarm
「Auto Power On

という文字を探すと良い。

私は、Everdayで5:30で時間指定をしてみたが、それ以外だと日付+時間指定になる。まぁこれを使う場合は「毎日」がデフォになるだろう~

Windowsで「高速スタートアップを無効にする」

Windows ⇒ コントローパネル → ハードウェアとサウンド → 電源オプション →システム設定
→□高速スタートアップを有効にするチェックを外す!

これをやらないと自動で電源Onにはならない!どれでググっても書いてある項目だが、案外やってなくて時間になっても電源Onにならずに何度もBIOS確認をしてしまうオチ~( ̄▽ ̄)

ちゃんと確認しておこう~

PC起動後、XCOPYを記述したUWSCモジュールをスケジュール設定する

これまで一ヵ月に一回手動でやっていたXCOPYを記述していたバッチファイルをUWSCモジュールに移す。
次に、UWSCのスケジュール設定に作成した.UWSモジュールをスクリプト欄に指定し、実行時間を決める。

PC起動を上記で、「5:00」にしたので、3分後の「5:03」に実行テストしてみた。
これでしっかりと差分だけ毎日自動でバックアップされるシステムが完成した!?と、思ったが
どうもUWSCのモジュールが上手く動いていないようだ。。。

print "Z-->D:\10HDD3TB\共有ファイル2\ xcopy中!"
//txtファイルに上書きする
wk_nm1=""" + "Z:\*" + """ +" " + """ + "D:\10HDD3TB\共有ファイル2\*" + """
//msgbox(wk_nm1)
//xcopy "Z:\*" "D:\10HDD3TB\共有ファイル2\*" /d /e /r /y
exec("cmd /c xcopy "+ wk_nm1 +"/d /e /r /y",true)
sleep(1)
exit
//***END


print "Y-->E:\12HDD3TB\共有ファイル\ xcopy中!"
//txtファイルに上書きする
wk_nm2=""" + "Y:\*" + """ +" " + """ + "E:\12HDD3TB\共有ファイル\*" + """
//msgbox(wk_nm2)
exec("cmd /c xcopy "+ wk_nm2 +"/d /e /r /y",true)
sleep(1)
exit
//***END


print "Shutdown!"
sleep(1)
//exec("cmd /c shutdown /r /t 0") /rは再起動
exec("cmd /c shutdown /s /t 0") //sはシャットダウン
exit
//***END

上記をexitで区切らずに、連続で流すと上手くセーブされないので、モジュールを区切って一つずつ実行するようにスケジュール側で変更してみた。

上記でも「共有ファイル」っていうのを英数字に変えると、上手く動いたのかもしれないねぇ~?
今は下記の.batで短文でしかも上手く動いているから、もういいんだけどねw

2番目にセーブするメディアを別プロセスにすることで、仮に1番目の処理に関係なく時間になれば2番目の処理を実行することになる。シャットダウンするまでに、1番目のデータセーブは3時間、2番目のデータセーブは2時間の猶予を持たせたことになる。これ以上の時間が掛かる場合は、その日は8:00になると強制的にShutdownされる。

差分だけになるので、この時間割で十分だが、もし全部できない場合は、次の日以降に持ち越しとなる。

作成したUWSCモジュール VS Windows11スケジューラーとの比較

「タスクスケジューラー」に自作した.batファイルを指定し、動かしたい日時を入れてスケジューリングするというもの。昔からよく使われているWindows管理ソフトである(標準搭載)

私が自作したUWSCモジュールとWindows標準搭載のスケジューラー!もう比較する前から分かっていることだが、そりゃ勝てる訳ありませんよ。。。てか、私もコチラを使っていますしねw

それでも、UWSCでテストはしてみるんです😎

バッチファイルだと、処理が終了してから次の命令に移るので、UWSCモジュールにように行間の動作を意識しなくて良いのでございます。つまり羅列して処理が終われば「プツン」と電源が切れるわけですよ。

余計な命令を挟まず、余計な時間は掛けずにデータセーブして、シャットダウン!となんと素晴らしい。

xcopy "Z:\*" "D:\10HDD3TB\kyoyu1001\*" /d /e /r /y
xcopy "Y:\*" "E:\12HDD3TB\kyoyu1201\*" /d /e /r /y
shutdown /s /t 10

こんな感じでセーブしたいファルダーを差分だけ自動セーブするには、もうメチャンコ良きシステムなんであります。

Windowsタスクスケジューラーの注意点は、3点

  • バッチファイル名、フォルダー名、ファイル名は全て英数字
  • タスクスケジューラーにブチ込む前にバッチファイルは単体でテストしておくこと
  • RTC Alarm 搭載のパソコンでPCを処理時間までに自動起動をさせておくこと

【JRAホームページ】今週の出馬表を自動的にデータ化するUWSCを作成

上記処理をテストし終わり、いよいよ私の本題へ向かう~

最終的には、いつも馬券に行きつくのだよw

それでは、またね~( ̄▽ ̄)

目次