Эта версия мне подходит. Однако, поскольку здесь работает и ваш собственный сценарий, я не совсем уверен, что это решит вашу проблему.
Общесистемная запись crontab (опустите поле root
, если это собственный crontab root, доступ к которому осуществляется с помощью crontab -e
):
* * * * * root /root/test.sh
Насколько я могу определить, ваш скрипт берет третью итерацию из top
и собирает процентное значение CPU в пользовательском режиме. Он также собирает значение кэшированной памяти из free
. Здесь я отказался от free
и извлек то же значение из третьей итерации top
. Скопируйте этот скрипт в /root/test.sh (и сделайте его исполняемым):
#!/bin/bash
top -b -n 3 -d 1 |
awk -v date="$(date)" '
/^%Cpu/ {cpu=$2}
/cached Mem/ {cached=$9}
END {printf "\n%s\t%s\t%s", date, cpu, cached}
' >> /root/log_lojar_top_free.txt
Сделайте скрипт исполняемым:
chmod +x /root/test.sh