Я записал сценарий оболочки в данные резервного копирования к s3, и я хочу инициировать этот сценарий оболочки, когда когда-либо системное пространство памяти идет очень важное, позволяет, говорят, когда система достигает 80% своей способности. Я знаю, что существуют утилиты как часы, которые контролируют системный размер, но они - триггеры уровня, т.е. они контролируют регулярно. То, что я хочу, является граничным триггером (вид обратного вызова, триггера), который активируется на вышеупомянутом определенном условии. То, что лучший способ состоит в том, чтобы записать такому включать debian, основывало систему. Предложите методы в ударе, C, C++, Python или Java.
То, что я подразумевал под граничным триггером, - то, что каждый раз, когда состояние системы очень важно т.е. использование выше, говорят, что должны быть сгенерированы 80% за триггер. Я не хочу опрашивать каждый говорить 1 час для проверки состояния.
Позвольте мне уточнить немного о моем варианте использования. По каждому запросу (через получают или отправляют API), тело запроса продвинуто к kafka. Скажите, что kafka понизился затем, журналы записаны в систему, и теперь у меня есть сценарий, который поворачивает вход в систему s3 только, когда системное состояние очень важно.
В этом случае, поскольку Вы видите, что kafka привычка понижается довольно часто. Скажите, что это понизилось один раз в 6-месячный также - поток для проверки размера каталога, каждый 1 час является просто тратой ресурса. Именно поэтому я хотел граничный триггер.
Я также столкнулся с сервисом, известным как inotify. просто задающийся вопросом, действительно ли это является лучшим, мы можем сделать (мудрая производительность)?
Любая справка
Спасибо
Если Вы хотите иметь периодическую проверку, сказать относительно каждого перезапуска или каждый вторник месяца, Вы могли настроить задание крона, которое называет Ваш резервный сценарий, и Вы могли проверить использование файловой системы в рамках своего резервного сценария самого. Может быть сделан просто как так:
if [ $(df / --output=pcent | awk -F '%' 'NR==2{print $1}') -ge 80 ] ;
then
# do something here
fi
Это в основном звонит df
команда с выводом, ограниченным использованием процента и /
файловая система и обрезки вывод так, чтобы только процент был возвращен. Если бы процент больше или равен 80, он выполнил бы то, что Вы помещаете после # do something here
комментарий.
Если Вы хотите непрерывно рабочее решение, вот сценарий Python, который проверяет Ваше использование файловой системы каждые 0.25 секунды. Я записал простую функцию обертки для subprocess.check_output
, таким образом, можно использовать это для легкого размещения вызова в сценарий туда в форме списка строк (который является в основном этим: ['brackets', 'and' , 'quotes']
)
#!/usr/bin/env python
import subprocess
import time
import sys
def run_cmd(cmdlist):
# function for running
try:
stdout = subprocess.check_output(cmdlist)
except subprocess.CalledProcessError:
pass
else:
if stdout:
return stdout
fs_usage = ""
while True:
fs_usage = run_cmd( "df / --output=pcent".split() )
if int(fs_usage.split("\n")[1].strip().split("%")[0]) >= 80 :
# make call to your backup script here !
# Use list format
run_cmd( [ 'notify-send','Hello','World' ] )
sys.exit(1)
time.sleep(0.25)