目覚まし シェルスクリプト Timeout puppy

一定時間後にモニタをオフ。指定時間にプログラムを実行。



#!/bin/bash

function SetWakeDayAfter() {
  para1=""
  echo "----------------------------"
  echo "wake日時を選択してください。。"
  echo "0=today,1=+1day,2=+2day"
  read input
  
  if [ $input = 0 ] ; then
      para="today"
  elif [ $input = 1 ] ; then
       para="+1 days"
#    echo "  スクリプトを実行します."
#    return $input
  elif [ $input = 2 ] ; then
       para="+2 days"
#    echo "  スクリプトを終了します."
#    exit 1
  else
    echo "有効値を入力してください"
    SetWakeTime
  fi
#  echo $para
  return $input

}

function ConfirmExecution() {

  echo "----------------------------"
  echo "一定時間経過後電源を切ります。"
  echo "何分後に電源を切りますか?"
  read input

  if [ -z $input ] ; then

    echo "数値を入力してください(255まで)。no=終了します"
    ConfirmExecution

  #elif [ $input = 'yes' ] || [ $input = 'YES' ] || [ $input = 'y' ] ; then
  elif [[ "$input" =~ ^[0-9]+$ ]] ; then
    echo "  スクリプトを実行します."
    return $input
  elif [ $input = 'no' ] || [ $input = 'NO' ] || [ $input = 'n' ] ; then
    echo "  スクリプトを終了します."
    exit 1
  else
    echo "数値を入力してください。"
    ConfirmExecution
  fi

}

keizoku=999
while [ $keizoku -gt 0 ]
do
  #keizoku=$keizoku -1
  keizoku=$(($keizoku - 1))
  echo "keizoku="$keizoku

	SetWakeDayAfter
	KeikaNichiji=$?

	echo "----------------------------"
	echo $KeikaNichiji"日後に復帰します"
	#date +%Y-%m-%d" 04:30:00" --date '+1 days'
	#date +%Y-%m-%d" 04:30:00" --date "+"$KeikaNichiji" days"
	WakeTime=$(date +%Y-%m-%d" 04:00:00" --date "+"$KeikaNichiji" days")
	echo $WakeTime
	#$(date +%s -d "2021-09-30 04:30:00")
	#date +%s -d "2021-10-01 04:30:00"
	#echo "2021-10-03"
	#date +%s -d "2021-10-03 04:30:00"
	#date +%s -d "2021-10-03 04:30:00"
	#date +%s -d $"2021-10-03 04:30:00"
	WakeTimeSecond=$(date +%s -d """$WakeTime""")
	echo $WakeTimeSecond


	#firefox "https://www.youtube.com/watch?v=ncfViXHwlcE" &


	# シェルスクリプトの実行を継続するか確認します。
	ConfirmExecution
	Remain=$?

	echo "----------------------------"
	echo $Remain"分後に電源を切ります"


	start=1
	#end=120
	#echo "please wait $end seconds"
	  while [[ $start -le $Remain ]]; do
		echo $(($Remain-$start))
	#	xdotool mousemove 300 $start
		sleep 1m
	#    sleep 5s
	#	xdotool mousemove $start 300
	 #   sleep 5s
		start=$(($start+1))
	  done


	#sleep 120m
	echo "電源を切ります。"
	sleep 1m
	#poweroff
	pgrep firefox | xargs kill -9
	sleep 1m
	$WakeTimeSecond
	#sudo /usr/sbin/rtcwake -m mem -t $(date +%s -d "2021-09-30 04:30:00")
	sudo /usr/sbin/rtcwake -m mem -t $WakeTimeSecond
	#date +%Y-%m-%d" 04:30:00" --date "+"$KeikaNichiji" days"
	#sudo /usr/sbin/rtcwake -m mem -t $(date +%s -d "2021-09-30 04:30:00")

	sleep 1m
	firefox "https://www.youtube.com/watch?v=P1fYUdJJ-20" &
	#sleep 1m

	start=1
	Remain=60
	#end=120
	#echo "please wait $end seconds"
	  while [[ $start -le $Remain ]]; do
		echo $(($Remain-$start))
		xdotool mousemove 300 $start
	 #   sleep 1m
		sleep 30s
		echo "画面キープ中、Remain="$Remain
		xdotool mousemove $start 300
		sleep 30s
		start=$(($start+1))
	  done

done



仮想メモリ、Virtualbox、メモ、Win10、

2021-11-15

仮想メモリ設定見なおししました。

こちらを参考に4GBにしました。

コミット済み
11.6

使用済み
7.9

といことで、ざっくりと差が4GBのようでした。

これはVirtualboxを立ち上げて、ブラウザも普通に使っている状態です。

よって、現在の設定は以下のようになっています。

モニタ 自動消灯 アプリ 何故か寝ている時に勝手にモニタが点灯していることがあるようなので

 

21:59:47 設定変更

 

@echo off
rem モニタオフ
REM echo 10分後モニタオフにします。

REM for /l %%n in (10,-1,0) do (
REM  
  rem 「%%n」の中身をコマンドプロンプト画面に出力
REM   echo 残り%%n分
REM   timeout /t 60 > nul
 
REM )

call "D:\Program\MonitorOffTimer105\MonitorOffTimer.exe" /TIME=60 /DELAY=10

pause

 


起動から10分後にモニタが消灯。

何故か勝手に点灯しても数分で再び消灯するようにしたつもり。

Win10、bat、monitor_offを使用。

10分後monitor_off.bat – ショートカット



@echo off
rem モニタオフ
echo 10分後モニタオフにします。

for /l %%n in (10,-1,0) do (
 
  rem 「%%n」の中身をコマンドプロンプト画面に出力
  echo 残り%%n分
  timeout /t 60 > nul
 
)

call "D:\Program\MonitorOffTimer105\MonitorOffTimer.exe"

pause

寝る前にこれを起動して、起きた時に停止すれば寝ている間だけモニタが消えているはず。