私たちは多くの*サブシステムを管理および制御する組み込みLinuxを持っています。また、ケーブルなしで通信できる通信媒体(Sバンド)もあります。 現在、私は運用期間中に使用できるスクリプトを扱っています。Linuxでスリープメカニズムがどのように機能するか
時計のプロトタイプです。クロックが00:00のときにスクリプトを有効にすることができます。
while [ 1 ];
do
curHour="$(date +%H)"
curMin="$(date +%M)"
echo $curHour:$curMin
if ((10#$curHour=="0")); then
if((10#$curMin=="0"));then
./archAndComp.sh
fi
fi
sleep 60
done
私が呼び出すスクリプトには、目的のディレクトリをアーカイブして圧縮する特定のジョブがあります。ここに私が説明したもののプロトタイプがあります。
dirName="logs"
j=0
if (find $PWD $dirName*); then
i=0
while (find $PWD $dirName-$i.tar.xz);
do
let i++
done
tar -cvf $PWD/$dirName-$i.tar $PWD/var/log/$dirName
xz $PWD/$dirName-$i.tar
else
tar -cvf $PWD/$dirName-$j.tar $PWD/var/log/$dirName
xz $PWD/$dirName-$j.tar
fi
要約すると、毎日の終わりに、特定のディレクトリをアーカイブして圧縮したいと思います。ファイル転送/ダウンロードスクリプトが提供されています。したがって、その部分を議論する必要はありません。
私がバグするものは、 timer.shスクリプトがアクティブな場合、他のプロセスが完了しないようにプロセスがスリープしますか?代わりに、ある内部スケジューラは、sleep
をスレッドのような仕組みに割り当てて、他のプロセスの寿命を延ばすことができます。
最初のケースでは、私はタイマスクリプトをデーモン化する必要があります。あなたの提案は何ですか、私はsystemdに固執するか、自分の時計のようなデーモンを実装しますか?
通常、スリープはCPUを大量に消費するものではありません。スケジューラは、奇妙な設定がない限り、他のプロセスを実行させる可能性があります。つまり、毎日これを実行するために 'cron 'を使用するだけではどうですか?毎回頻繁に物を動かすことは、正確にそれがそこにあるのです –