Сценарий Bash, который скопирует содержание каталога, пока средняя системная нагрузка является низкой?

По причинам я не войду, я должен скопировать каталоги, пока средняя системная нагрузка является низкой. Кто-то может помочь мне записать сценарий Bash, который скопирует содержание каталога, но проверка для проверки средняя системная нагрузка ниже X прежде, чем скопировать каждый файл, и в противном случае ожидайте секунды Y и попробуйте еще раз?

2
задан 26.05.2010, 09:36

3 ответа

Можно ли просто выполнить rsync или безотносительно команды копии, которую Вы хотите использовать объединенный с хорошим, чтобы установить приоритет процессора и/или ионизироваться для установки io приоритета.

2
ответ дан 08.12.2019, 05:56

Существует опция rsync это ограничивает пропускную способность средств ввода-вывода:

--bwlimit=KBPS          limit I/O bandwidth; KBytes per second
2
ответ дан 08.12.2019, 05:56

просто ради удовольствия (и да, я знаю, что это не пытается скопировать файл снова в случае, если это заснуло режим, я оставлю это для Вашего собственного развлечения; обход по "$" приходит на ум + смещающийся):

#!/bin/bash

for i in file1 file2 file3 etc
do

    LOAD=$(uptime | awk '{ sub(/,.*/, "", $9); print $9 * 100.0  }' )

    if [ $LOAD -lt 85 ]
    then
        echo "copy $i to wherever"
    else
        echo "sleep since load is $LOAD"
        sleep 5
    fi 
done

при помощи среднего числа загрузки последней минуты и только копирования, если система на 85% неактивна, она сделает что-то.

так или иначе я просто использовал бы rsync с throtteling (поскольку dennis упомянутый) плюс установленный высокое хорошее значение (равняется низкому приоритету) к процессу rsync (как zoredache упомянутый), и позвольте OS сделать планирование (который разработан, чтобы сделать просто это).

1
ответ дан 08.12.2019, 05:56

Теги

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