как получить файл на удаленном сервере, подключенном с помощью ssh?

$ awk -f script.awk file
#filename       seqno   phasename       corundum_a      corundum_b      corundum_c      corundum_scale  corundum_Rwp
blah_001.xye    1       corundum        3       3       12      0.001   3
blah_002.xye    2       corundum        3.1     3.1     12.1    0.002   3.5
blah_003.xye    3       corundum        3.2     3.2     12.2    0.001   3.1

#filename       seqno   phasename       silcon_NIST_a   silcon_NIST_b   silcon_NIST_c   silcon_NIST_scale       silcon_NIST_Rwp
blah_001.xye    2       silcon_NIST     5.4     5.4     5.4     0.002   3
blah_002.xye    3       silcon_NIST     5.41    5.41    5.41    0.004   3.5
blah_003.xye    4       silcon_NIST     5.42    5.42    5.42    0.002   3.1

Где script.awkэто

BEGIN   { OFS = "\t" }

/^#/    {
    # save header fields

    for (i = 1; i <= NF; ++i)
        header[i] = $i

    next
}

# if column 2 contains a lower number than the previous line
# (or if no previous line with data), then output header
$2 < col2 || !col2 {
    # output blank line if needed
    if (print_blank) {
        print ""
    }
    print_blank = 1

    # print first three headers as-is
    for (i = 1; i <= 3; ++i)
        printf("%s%s", header[i], OFS)

    # prepend column three to remaining headers
    for (i = 4; i < NF; ++i)
        printf("%s_%s%s", $3, header[i], OFS)
    printf("%s_%s%s", $3, header[NF], ORS)
}

# print all lines and save value from column 2
{ col2 = $2; print }

Скрипт сохраняет заголовок из входных данных в массив header. Когда мы находим второй столбец, значение которого меньше значения второго столбца предыдущей строки, мы выводим новый заголовок перед выводом данных. Заголовку предшествует пустая строка, если это не первый заголовок. Имена столбцов переменных берут свои имена из третьего поля.

Сценарий не принимает параметров.

0
28.07.2020, 07:44
2 ответа

Чтобы точно определить проблему, мне нужно больше подробностей о сервере. Но на самом деле все сводится к проблеме с DNS -.

Свяжитесь с администратором этого сервера и сообщите, что существует проблема с DNS и что разрешение записей Aи AAAAдля example.comне удается.

Временное решение :замените example.comIP-адресом сервера.
(Запуск ping example.comна вашем компьютере покажет вам IP-адрес)

Изменить:Вы упомянули, что у вас также есть проблема с установкой модулей Python (сpip). По той же причине pip попытается загрузить их с веб-сайта, о котором ему известно только имя хоста, а не IP-адрес.

Редактировать 2:Вы также можете самостоятельно выяснить, почему разрешение не удается, но я был бы осторожен!
Некоторым администраторам нравится небольшая помощь со стороны пользователей, другие могут сильно разозлиться, когда пользователи начинают шпионить.
Если сомневаетесь, :не делайте этого.
В любом случае, вот несколько команд, которые могут предоставить вам дополнительную информацию:

  • dig -t A example.com @8.8.8.8 | grep -v '^;' | grep A(должен показать вам IP-адрес example.com)
  • dig -t A example.com | grep -v '^;' | grep A(должно показывать то же самое)
  • resolvectl status | grep Server(должен показать вам DNS-серверы вашего университета)
  • systemctl status systemd-resolved(должен быть активен)
  • journalctl -u systemd-resolve(не должно содержать ошибок)
0
18.03.2021, 23:16

Сервер не имеет разрешения DNS -, возможно, он намеренно не имеет доступа к Интернету. Но вы можете использовать scpдля загрузки файлов на сервер.

0
18.03.2021, 23:16

Теги

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