Мне кажется, что вы хотите оставить файл, который сортируется последним, в лексикографическом порядке сортировки по умолчанию.
Ну, порядок сортировки по умолчанию не работает с числами, которые имеют переменное количество цифр. Но если числа идут подряд , и между нулем и наибольшим числом не пропущено ни одного (, как это было в исходном вопросе ), тогда мы можем считать от нуля до тех пор, пока не найдем число, которое t и удалите все найденные, кроме последнего:
#!/bin/sh
for group in *.log; do
i=0
last="$group"
while [ -f "$group.$i" ]; do
rm "$last"
last="$group.$i"
i=$((i+1))
done
echo "did not remove '$last'"
done
После touch foo.log foo.log.{0..13} bar.log asdf.log asdf.log.0
удаляются все, кроме foo.log.13
, bar.log
и asdf.log.0
.
Сторожевой таймер — это компонент, который ожидает регулярных уведомлений «Я жив» и сбрасывает систему, если она не получает их в течение заданного периода времени. Его цель — перезагрузить систему, которая перестает отвечать на запросы. Полезные сторожевые таймеры реализованы как отдельные компоненты, так что они продолжают «тикать», даже если ядро системы заблокировано, и, таким образом, могут восстанавливаться после самых серьезных блокировок -.
Нужен ли он вам, зависит от того, для чего вы используете свою систему. Если вы хотите, чтобы ваша система автоматически перезагружалась при зависании, то стоит включить ее; если вы всегда используете свою систему в интерактивном режиме, это может быть не так полезно.
Ищите пакеты с watchdog
в именах в вашем любимом дистрибутиве; systemd также может позаботиться об этом за вас (см. linux watchdog и systemd watchdog). Возможно, вам также потребуется включить оборудование в настройках прошивки.