Операция не разрешена при выполнении ls в домашнем каталоге

Вам нужно только запустить команду freeна серверах:

selectNode () {
    mem1=$( ssh "$1" free | awk '/^Mem:/ { print int(100*$3/$2) }' )
    mem2=$( ssh "$2" free | awk '/^Mem:/ { print int(100*$3/$2) }' )

    if [ "$mem1" -lt "$mem2" ]; then
        printf '%s\n' "$1"
    else
        printf '%s\n' "$2"
    fi
}

Здесь на серверах выполняется только команда free, в то время как awkвыполняется локально. Кроме того, мы позволяем awkпреобразовать результат вычисления в целое число, чтобы мы могли использовать его позже с тестом -lt.

Вы могли бы использовать это как

server=$( selectNode "user@server1" "user@server2" )

В качестве альтернативы:

selectNode () {
    mem1=$( ssh "$1" free | awk '/^Mem:/ { print int(100*$3/$2) }' )
    mem2=$( ssh "$2" free | awk '/^Mem:/ { print int(100*$3/$2) }' )

    [ "$mem1" -lt "$mem2" ]
}

, а затем

if selectNode "user@server1" "user@server2"; then
    server="user@server1"
else
    server="user@server2"
fi
1
21.09.2020, 20:14
1 ответ

В Catalina предусмотрены отдельные элементы управления для ограничения доступа к рабочему столу, документам и загрузкам.

  • перейдите в Системные настройки
  • откройте «Безопасность и конфиденциальность»
  • нажмите на вкладку «Конфиденциальность»
  • в списке слева выберите "Файлы и папки"
  • в списке справа найдите «Терминал» (или iTerm, если это то, что вы используете)
  • установите флажок рядом с «Папка загрузок»
2
18.03.2021, 23:03

Теги

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