Rsync по Rsync через cronjob

Если Вы хотите сделать это с помощью портативного, стандарт POSIX окружают и избегают расширений удара как массивы, необходимо использовать оценку:

$ foo1='a b c'
$ foo2='d e f'
$ a=1; eval echo \$foo$a
a b c
$ a=2; eval echo \$foo$a
d e f
2
05.06.2013, 09:50
1 ответ

Если я когда-либо волнуюсь по поводу одного cronjob, запускающегося, прежде чем другой будет закончен, я обычно создаю временный файл под /tmp (как /tmp/lockFile_$$) это удалено как последний шаг в первом cronjob, и просто имейте второй cronjob, запускаются с цикла на том существовании файлов, спя 5-10 секунд в каждом цикле и убегающий из цикла, после того как файл исчезает (возможно отправляющий корень электронное письмо каждые несколько повторения, таким образом, у Вас есть более легкое время, замечающее остановленные задания).

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

Если узким горлом является ЦП, можно попытаться дать процессу rsync более низкое хорошее значение

Если это iowait время, Вы могли бы рассмотреть также ionice если Вы используете cfq на Linux или разделяете команду rsync на несколько параллельных процессов так, чтобы один процесс мог ожидать на вводе-выводе, в то время как другой передает вместо того, чтобы войти последовательный. Большинство платформ также позволяет Вам настроить функциональность ввода-вывода. На Linux во время первого cronjob Вы могли бы рассмотреть временно переключение на deadline планировщик (для приоритизации перечитывает по записям), и временно увеличение read_ahead_kb так как Вы вытягиваете в целых больших файлах от диска.

3
27.01.2020, 22:06
  • 1
    Спасибо за информацию, его интересное. Но лучший из всех был бы то, если Rsync-луг по другому не будет делать ничего плохого для начала. –  Hermann Ingjaldsson 04.06.2013, 14:44
  • 2
    Действительно ли два rsync's идентичны за исключением того, когда они добираются, работал? –  Bratchley 04.06.2013, 17:36
  • 3
    да они - то же. –  Hermann Ingjaldsson 04.06.2013, 19:23
  • 4
    Затем Вы, вероятно, в порядке с возможным дублированием усилия, все же. Rsync пишет файлы в целевых каталогах с рандомизированными именами, начинающимися с периода прежде, чем переименовать их к имени собственному (удаляющий связь с другими файлами с тем именем). Второй rsync приходит, он пропустит всю работу ранее rsync, уже сделал, доберитесь до текущего файла, посмотрите, что это не в месте назначения (или место назначения старше), затем пробуют его собственную синхронизацию. Таким образом, Вы закончите с двумя выполнениями процессов rsync того же самого дважды, возможно замедляя обоих, если ввод-вывод будет насыщаться из-за этого. –  Bratchley 04.06.2013, 21:03
  • 5
    Разъясниться: "вероятно, хорошо" в том смысле, что, если производительность не зверски медленнее, это будет работать, просто неэффективно так. Контрастировавший с тем, является ли второй синхронизация, которая происходит после того, как первое, как предполагается, закончено (потенциально порождение проблем когерентности данных). вот пример двух из временных файлов rsync создает, в то время как это посреди выполнения его вещи. –  Bratchley 04.06.2013, 21:06

Теги

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