Как К: Продолжайте управлять сценарием только, когда сеть (интернет-соединение) будет неактивна?

У меня есть сценарий (на самом деле, приложение направляющих с системой очереди заданий Sidekiq), который загружает картинки и альбомы к Flickr. Эти данные огромны в моих целях (приблизительно 100 ГБ), и загрузка является медленной из-за моей низкой интернет-скорости.

Я уже настроил сценарий для выполнения, когда Ubuntu загружается, а также иметь init.d интерфейс для управления этим сценарием.

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

Так, я хотел бы знать, существует ли способ, которым я могу контролировать свое интернет-соединение и проверку, чтобы видеть, соединены ли другие приложения онлайн. Если так, паузы сценария самостоятельно и резюме, когда соединение становится неактивным снова.

Любые указатели или справка в этом отношении ценятся.

1
задан 25 September 2014 в 21:51

1 ответ

Можно использовать/proc/net/dev для контроля сетевой активности, чего-то вроде этого:

packets() {
    # Get the number of packets of eth0 device
    cat /proc/net/dev | grep eth0 | cut -f5 -d' ';
}

LAST=$(packets)

while [ true ]; do
    sleep 1;
    PACKS=$(packets)
    DIFF=$(($PACKS-$LAST));
    # I consider idle less than 10 packets per second
    if [ $DIFF -le 10 ]; then
        echo 'Idle!';
    fi
    LAST=$PACKS;
done

прием здесь - то, что Вы считаете неактивными, так как нулевой трафик является невозможностью реального мира:)

0
ответ дан 7 October 2019 в 01:20

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

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