Существует ли способ продвинуть информацию о конфигурации оболочки когда SSHing к хосту?

Быстрый, грязный, работы.

$ dmesg | grep 3w | perl /root/print_time_offset.pl

Содержание того сценария:

$ cat /root/print_time_offset.pl

#!/usr/bin/perl

$uptime = `cat /proc/uptime | awk '{print $1}';`;
$boot = time() - $uptime;
chomp $boot;
while (<STDIN>) {
        if ($_ =~ /^\[([\s\d\.]+)\]/) {
                $time_offset = $1;
        }
        $real_time = sprintf scalar localtime($boot + $time_offset);
        $_ =~ s/\[[\s\d\.]+\]/\[$real_time\]/;
        print $_;
}

Демонстрационный вывод следующие:

[Mon Feb 21 23:06:33 2011] 3ware 9000 Storage Controller device driver for Linux v2.26.02.012.
[Mon Feb 21 23:06:33 2011] 3w-9xxx 0000:03:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[Mon Feb 21 23:06:33 2011] 3w-9xxx 0000:03:00.0: setting latency timer to 64
[Mon Feb 21 23:06:33 2011] scsi4 : 3ware 9000 Storage Controller
[Mon Feb 21 23:06:33 2011] 3w-9xxx: scsi4: Found a 3ware 9000 Storage Controller at 0xfbcde000, IRQ: 16.
[Mon Feb 21 23:06:34 2011] 3w-9xxx: scsi4: Firmware FE9X 4.08.00.006, BIOS BE9X 4.08.00.001, Ports: 4.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Sat Feb 26 02:01:01 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=1.
[Sat Feb 26 02:01:01 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=0.
[Sat Feb 26 16:49:13 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x002B): Verify completed:unit=0, subunit=1.
[Sat Feb 26 17:07:19 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x002B): Verify completed:unit=0, subunit=0.
[Sat Mar  5 02:00:16 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=1.
[Sat Mar  5 02:00:16 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=0.
[Sat Mar  5 18:48:57 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x002B): Verify completed:unit=0, subunit=1.
[Sat Mar  5 19:05:17 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x002B): Verify completed:unit=0, subunit=0.
[Sat Mar 12 02:00:30 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=1.
[Sat Mar 12 02:00:30 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=0.
5
14.06.2011, 00:45
2 ответа

Вы пытаетесь изменить подсказку, отображенную удаленной оболочкой. Это, конечно, требует изменения конфигурационного файла удаленной оболочки, т.е. .bashrc.

Если Вы не хотите изменять файл, и действительно необходимо использовать ту общую учетную запись (вставьте обязательное ворчание об общих учетных записях), и Вы входите в систему по ssh, Вы можете (ab) использовать command= опция в ~/.ssh/authorized_keys файл. Ключ с опцией команды хорош только для выполнения указанной команды; но команда в authorized_keys файле работает с переменной среды SSH_ORIGINAL_COMMAND набор к команде пользователь указал (пустой для интерактивных сессий). Таким образом, можно использовать что-то вроде этого в ~/.ssh/authorized_keys:

command="HOME=$HOME/.HOME.lance;
         if [ -n \"$SSH_ORIGINAL_COMMAND\" ]; then
           eval \"$SSH_ORIGINAL_COMMAND\";
         else exec \"$SHELL\"; fi" ssh-rsa AAAA…== lance@example.com

Обратите внимание, что я поместил разрывы строки выше для четкости, но это на самом деле должно быть всем на одной строке в authorized_keys файл.

Затем поместите свои любимые конфигурационные файлы в это .HOME.lance каталог.

Для случайного использования можно явно получить файл профиля или выполнить любую команду оболочки. Передайте -t опция иметь терминал, если Вы хотите выполнить интерактивные команды.

ssh shared-account@server "LS_COLORS='$LS_COLORS' ls --color"
ssh -t shared-account@server '. ~/.profile.drew; exec zsh'

Если Вы только хотите отредактировать или скопировать файлы на удаленной машине, можно использовать сетевую файловую систему, такую как SSHFS (для клиентов Unix) или Бродяга (для Emacs) и работать от комфорта окружения.

6
27.01.2020, 20:39

Когда Вы входите в удаленную систему, Вам дают новую оболочку. Конкретно оболочка в Удаленной системе. Чтобы иметь Ваши любимые предпочтения оболочки на другой машине, необходимо будет также установить предпочтения на той машине. Это означает, что необходимо будет установить быструю подсказку командного процессора в .bashrc файле на удаленном сайте. Это разработало этот путь.

Как примечание стороны, возможно, что, когда Вы входите в удаленную машину, удаленная машина может предположить, что у Вас есть менее способный терминал, чем Вы. Если Ваш PS1 установлен право, попытайтесь также установить свою переменную ТЕРМИНА при преуспевании в новую машину. Удаленные машины часто принимают довольно простой терминал для всех удаленных входов в систему, но они часто на самом деле поддерживают достойные, и можно подделать его для использования разумных настроек, но вызывающий эту переменную среды к чему-то способному, таких как xterm-цвет.

0
27.01.2020, 20:39
  • 1
    : O sry, это не работает под xterm или терминалом гнома: O, но спасибо! –  LanceBaynes 13.06.2011, 19:22
  • 2
    Вопрос говорит "нет, я не хочу добавлять упомянутые строки к удаленным серверам .bashrc", так по-видимому, он просто хочет, чтобы его локальные быстрые настройки работали над удаленной машиной, на самом деле не изменяя удаленную подсказку. Я не уверен, возможно ли это даже, но вот почему окрасьте, не работает –  Michael Mrozek♦ 13.06.2011, 19:29
  • 3
    @Michael: Спасибо я пропустил ту часть вопроса. Я думал, что ему установили материал, но цвет не проникал. @Lance: Michael прав, что это просто не прокладывает себе путь. См. мой отредактированный ответ для почему. –  Caleb 14.06.2011, 00:34
  • 4
    @Michael: это, отчасти (скопировано здесь). –  Gilles 'SO- stop being evil' 14.06.2011, 00:44

Теги

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