Это распространенная проблема, связанная с тем, что командные строки не ограничены по размеру и количеству аргументов. Обычный способ обойти эти ограничения - использовать find
/ xargs
pipes.
Ваш случай должен работать так:
sudo sh -c "find . -mindepth 1 -maxdepth 1 -print0 |xargs -0 du -hsx -- " |sort -rh |head
sudo
требование выглядит немного хитрее, чем обычно.
Если «определенное время» не установлено, т.е. вы хотите указать вручную, когда ваша система входит и выходит из «режим производительности», вы можете просто остановить и запустить cron
:
sudo systemctl stop cron
предотвратит запуск любых заданий cron, а
sudo systemctl start cron
будет повторно включить их.
Вы также можете проверить anacron
вместо cron
, может быть проще настроить глобально так, чтобы это соответствовало вашим потребностям.
Я бы рассмотрел два подхода
Оставьте планирование нетронутым, но запустите все cron
задания подnice
и, возможно, дажеionice
:
0 * * * * root ionice -c3 nice /some/command and parameters
Запретить любые cron
задания в определенное время. Помните, что любой пользователь, который может создать (или удалить )файл флага, может контролировать этот подход. Это может сработать, если вы хотите настроить игровой режим по запросу , добавив команды touch
и rm
в сценарий запуска -вашей игры. (Возможно, вам придется использовать /tmp
, а не /var/run
, но тогда это тривиально открыто для любого пользователя.)
0 18 * * * root touch /var/run/no_cron
0 19 * * * root rm -f /var/run/no_cron
0 * * * * root test ! -f /var/run/no_cron && /some/command...
После настройки ни один из подходов не требует root-доступа. Более того, вы можете заранее решить, какие работы подлежат такому контролю, а какие нет.