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


9

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

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

Ответы:


19

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

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

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


Спасибо за 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 были созданы таким образом.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.