Earlyoom для использования ЦП

Существует также другой способ сделать это с помощью wget, который я успешно использовал для одного сайта, и вы должны иметь возможность изменять приведенные ниже инструкции для других сайтов. Это включает в себя создание списка URL-адресов, а затем подачи этого списка на wget.

1) В качестве примера можно сказать, что вы хотите загрузить все 63 pdf-журнала журнала Full Circle (журнал Ubuntu), но ваш менеджер загрузок не может загрузить их все сразу. Поэтому найдите ссылку первого pdf-файла и быстро проверьте, что ссылки других журналов находятся в одном и том же формате url.

2) Благодаря знаниям, полученным в первой части, мы можем перейти к нашему скрипту для генерации URL-адресов. В приведенном ниже сценарии выполняется цикл while, который я изменил (кредит для его создателя). Вы изменяете этот скрипт, поместив количество журналов в until [ $i = 63 ] часть и поместите правильный URL-адрес после echo и убедитесь, что "$i" находится в правильной части URL-адреса, чтобы быть эхом, чтобы он менялся при каждом запуске цикла. URL-адреса генерируются, а затем добавляются в текстовый файл - это происходит через секунду после запуска скрипта и не так сложно настроить, как это звучит!

Сохранить сценарий в текстовом редакторе, сделать его исполняемым и запустить; измените его, как описано выше, когда вы хотите загрузить с другого сайта, чем мой пример.

#!/bin/bash
   i=0
   until [ $i = 63 ] ; do
    i=$(($i+1))
    echo "http://dl.fullcirclemagazine.org/issue"$i"_en.pdf" >> url.txt
done 

3) Наконец, предполагая, что url.txt находится в текущем рабочем каталоге, запустите:

wget -i url.txt  

Если вы хотите сохранить загрузки в другом месте, добавьте -P ~/MyDirectory после url.txt

. Он работает, если вы попробуете, введите ctrl c, чтобы прервать, если вы не хотите скачать их все!

0
задан 22 June 2017 в 04:47

2 ответа

Я нашел это, что, кажется, отвечает вашим потребностям. Я не тестировал его ... вы должны быть в состоянии адаптировать его для своих целей. Конечно, без разбора убийство случайных процессов автоматически может быть нецелесообразным.

#!/bin/bash ## Note: will kill the top-most process if the $CPU_LOAD is greater than the $CPU_THRESHOLD. echo echo checking for run-away process ... CPU_LOAD=$(uptime | cut -d"," -f4 | cut -d":" -f2 | cut -d" " -f2 | sed -e "s/\.//g") CPU_THRESHOLD=300 PROCESS=$(ps aux r) TOPPROCESS=$(ps -eo pid -eo pcpu -eo command | sort -k 2 -r | grep -v PID | head -n 1) if [ $CPU_LOAD -gt $CPU_THRESHOLD ] ; then # kill -9 $(ps -eo pid | sort -k 1 -r | grep -v PID | head -n 1) #original # kill -9 $(ps -eo pcpu | sort -k 1 -r | grep -v %CPU | head -n 1) kill -9 $TOPPROCESS echo system overloading! echo Top-most process killed $TOPPROCESS echo load average is at $CPU_LOAD echo echo Active processes... ps aux r # send an email using mail SUBJECT="Runaway Process Report" # Email To ? EMAIL="me@email.com" # Email text/message EMAILMESSAGE="/tmp/emailmessage.txt" echo "System overloading, possible runaway process."> $EMAILMESSAGE echo "Top-most process killed $TOPPROCESS" >>$EMAILMESSAGE echo "Load average was at $CPU_LOAD" >>$EMAILMESSAGE echo "Active processes..." >>$EMAILMESSAGE echo "$PROCESS" >>$EMAILMESSAGE mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE else echo echo no run-aways. echo load average is at $CPU_LOAD echo echo Active processes... ps aux r fi exit 0
0
ответ дан 18 July 2018 в 11:16

Я нашел это, что, кажется, отвечает вашим потребностям. Я не тестировал его ... вы должны быть в состоянии адаптировать его для своих целей. Конечно, без разбора убийство случайных процессов автоматически может быть нецелесообразным.

#!/bin/bash ## Note: will kill the top-most process if the $CPU_LOAD is greater than the $CPU_THRESHOLD. echo echo checking for run-away process ... CPU_LOAD=$(uptime | cut -d"," -f4 | cut -d":" -f2 | cut -d" " -f2 | sed -e "s/\.//g") CPU_THRESHOLD=300 PROCESS=$(ps aux r) TOPPROCESS=$(ps -eo pid -eo pcpu -eo command | sort -k 2 -r | grep -v PID | head -n 1) if [ $CPU_LOAD -gt $CPU_THRESHOLD ] ; then # kill -9 $(ps -eo pid | sort -k 1 -r | grep -v PID | head -n 1) #original # kill -9 $(ps -eo pcpu | sort -k 1 -r | grep -v %CPU | head -n 1) kill -9 $TOPPROCESS echo system overloading! echo Top-most process killed $TOPPROCESS echo load average is at $CPU_LOAD echo echo Active processes... ps aux r # send an email using mail SUBJECT="Runaway Process Report" # Email To ? EMAIL="me@email.com" # Email text/message EMAILMESSAGE="/tmp/emailmessage.txt" echo "System overloading, possible runaway process."> $EMAILMESSAGE echo "Top-most process killed $TOPPROCESS" >>$EMAILMESSAGE echo "Load average was at $CPU_LOAD" >>$EMAILMESSAGE echo "Active processes..." >>$EMAILMESSAGE echo "$PROCESS" >>$EMAILMESSAGE mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE else echo echo no run-aways. echo load average is at $CPU_LOAD echo echo Active processes... ps aux r fi exit 0
0
ответ дан 24 July 2018 в 19:45
  • 1
    Как вычислить порог ЦП? – user 22 June 2017 в 04:23
  • 2
    $ CPU_THRESHOLD будет зависеть от количества ядер (ЦП), которые у вас есть в вашей системе. Вам придется немного поэкспериментировать, чтобы найти пороговое значение, соответствующее вашим потребностям. – jones0610 22 June 2017 в 04:28

Другие вопросы по тегам:

Похожие вопросы: