Как я могу записать команды Linux?

9

Есть ли способ записать команды Linux, которые я использую, и повторно использовать их на другом компьютере или в случае, если я хочу переустановить компьютер?

В примере запишите, как я настраиваю NginX, PHP и разрешения в своей лабораторной среде, а затем повторяю точные команды на моей машине развертывания?

Jonas
источник

Ответы:

19

Мне кажется, что вы хотите сценарий (1) .

Позволяет записывать и воспроизводить терминальные сеансы.

С другой стороны, если вы пытаетесь автоматизировать настройки, рассмотрите возможность управления конфигурацией, например, puppet .

ptman
источник
Спасибо за Puppet, это выглядит хорошо. Я буду читать больше об этом.
Джонас
1
+1 для кукол. Это гораздо лучший способ, чем просто записывать команды оболочки.
EEAA
+1. cfengine также является конкурентом Puppet
gWaldo
2

Bash записывает команды в файл ~ / .bash_history. Это работает, если вы делаете все через командную строку и в одном командном окне.

Однако, имейте в виду, что размер этого файла ограничивается самыми последними 1000 (по умолчанию) командами.

Кевин М
источник
0

попробуй это

script / tmp / it356658 - $ (uname -n) .out

# свидание

Раджу
источник
Он направляет scriptвывод в конкретный файл. Наименование является необычным, но, вероятно, извлечено из более крупного сценария оболочки.
mctylr
1
$(uname -n)Интерпретируются в командной строке запустить unameкоманду с -nфлагом , чтобы распечатать имя хоста системы.
mctylr
0

Я думаю, что вы также можете использовать autoexpect для этой задачи.

анонимное
источник
Я получил "команда не найдена" в Ubuntu, когда я попробовал это.
Джонас
1
Я думаю, что это будет частью пакета Expect, который не может быть установлен по умолчанию. Ref: linuxjournal.com/article/3065
mctylr
0

Обычно я использую команду как history > ~/tmp/hhдля сохранения файла истории. Затем я использую vi, прыгаю на дно с помощью команды G и затем ищу вверх, пока не найду часть, которая будет рядом с полезной точкой входа в скрипт. Оттуда я сворачиваю посторонние lsкоманды, объединяю серии инкрементных cdкаталогов в каталоги, добавляю комментарии и начинаю выяснять, какие части должны быть аргументами, какие вещи могут быть настройками среды, а какие должны быть жестко закодированы. Я добавляю много комментариев. Иногда я "разбираюсь" в части автоматизации этого и просто даю пользователю некоторые инструкции (найдите этот параметр, sshfoo и ..., раскомментируйте blah из этого файла и переместите его в blarg) или echoURL ... и подсказку Строка типа: «Настроен Foo и выход>»

(Когда вы включаете автоматическое редактирование файла ... Я предлагаю добавить инструктивный код к файлу в качестве комментария и использовать что-то вроде переключателя командной строки vi +, чтобы поместить курсор редактора в конец файла, вверху ваших инструкций. Например, с 5 строками инструктивного текста ( например, здесь документ ) вы добавите '+$-5'в viкомандную строку перед именем файла. ( $-5это старое exзаклинание для обращения к последней строке файла, минус пять строк; относительно неясный +переключатель viпринимает любую ex... : команду ... в качестве аргумента).

Еще одна хитрость ... если вы делаете большую часть работы из терминала X Оконная система ( xterm, konsole, gnome-terminal, и т.д.) , а затем держать браузер открытым на некоторых вики - страниц , как вы идете. Вырезать и пропустить команды, вывод, фрагменты текстовых файлов и записывать заметки, как вы идете. (Это предполагает, что вы в основном работаете на своих серверах sshс рабочей станции, настольного компьютера, ноутбука или чего-то еще).

Сохраняйте рано и часто.

Создавайте новые вики-страницы для разных процессов или этапов. Затем свяжите их вместе и ссылки на любые ссылки в сети. (Вы знаете, все те страницы Google, которые вы использовали каждый раз, когда застревали в любой точке).

Некоторые из моих лучших документов HOWTO были созданы таким образом.

Если вы сделаете это правильно, то сможете получить работу по старинке, делегировав младшему члену команды ... или стажеру. :)

Джим Деннис
источник