Не может соединиться с ssh от crontab

  1. Они будут все работать одновременно
  2. Загрузка будет распределена Вашей ОС, которая будет работаться на стольких же ядер, сколько там доступны. Время не могло бы быть пропорционально количеству потоков. Вот глупый пример почему. Предположите, что у Вас есть одно задание, которое Вы хотите сделать три раза, и тому же количеству времени требуется каждый раз (1 единица времени). У Вас есть два ядра. Предположите, что нет ничего иного выполнения.
    • Заключите тот в корпус: у Вас только есть один поток. В этом случае поток работает на одном ядре, и все это берет 3 единицы времени для завершения. Общее время: 3
    • Случай два: у Вас есть два потока. В одной единице времени задание сделано дважды (однажды на ядро). Затем необходимо ожидать целая единица времени третьего повторения для завершения. Общее время: 2
    • Случай 3: у Вас есть 3 потока. Ваша ОС попытается сделать все справедливым, и так разделит время равномерно между тремя процессами. К тому времени конец единицы 1, НИ ОДИН из них не будет завершен. Единицей 2 они будут все сделаны. (см. случай выше). Общее время: 2

Запуск большего количества потоков действительно не повредит Вашу производительность очень (стоимость запуска потока составляет меньше чем 1 МБ), но это не могло бы помочь также.

Единственный способ знать, что был бы быстрее, чтобы сделать, это, тестируют его, но используют следующие правила в качестве руководства: Используйте, по крайней мере, то же количество потоков, как у Вас есть ядра. Кроме того, если процесс имеет партии и большой доступ к памяти повсеместно, это может на самом деле быть быстрее, чтобы иметь больше потоков, чем ядра (доступ к памяти является очень медленным по сравнению с выполнением других инструкций, и ОС заполнит время реальным выполнением чего-то еще, что не должно ожидать).

2
19.05.2013, 14:18
1 ответ

Идеально это не должно быть сделано с помощью cron, это - то, для чего Ваша init система. Вы могли создать сервис, который зависит от Вашего состояния сети.

Однако это должно работать, если Вы полны решимости относительно использования cron:

#!/bin/sh

host="foo.bar.com"

# Wait for host's SSH server to become accessible
while ! ssh "user@$host" exit >/dev/null 2>&1; then
    sleep 1
fi

ssh -R 9900:localhost:22 "user@$host"
0
27.01.2020, 23:05
  • 1
    Спасибо, но не работал (я заменил затем, и fi с делают и сделанный).This, каждый также работает в командной строке, но не в кроне –  user39463 19.05.2013, 16:08
  • 2
    @user39463 Вы уверенный, что можно войти в систему без пароля? Вы настраивали свой агент SSH правильно? –  Chris Down 19.05.2013, 16:38

Теги

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