Як я можу записувати команди Linux?


9

Чи є спосіб запису команд Linux, які я використовую, та повторного використання їх на іншій машині чи у випадку, якщо я хочу перевстановити машину?

У прикладі запишіть, як я налаштовував NginX, PHP та дозволи в моєму середовищі лабораторії, а потім повторював точні команди на моїй машині розгортання?

Відповіді:


19

Мені здається, ви хочете сценарію (1) .

Це дозволяє записувати та відтворювати сеанси терміналу.

З іншого боку, якщо ви намагаєтеся автоматизувати налаштування, розгляньте керування конфігурацією, як лялечку .


Дякую за Лялечку, це добре виглядає. Я детальніше про це прочитаю.
Йонас

1
+1 для Лялечки. Це набагато кращий спосіб, ніж просто запис команд оболонки.
EEAA

+1. cfengine є конкурентом Puppet, також
gWaldo

2

Два способи я можу придумати верхній частині голови:

  • Використовуйте вбудовану історію команд

  • Зробіть усе в сеансі на екрані та ввімкніть журнал


2

Bash записує команди у файл під назвою ~ / .bash_history. Це працює, якщо ви робите все за допомогою командного рядка та в одному командному вікні.

Але будьте попереджені, це обмежує розмір цього файлу на останні 1000 команд (за замовчуванням).


0

спробуйте це

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

# дата


Він спрямовує scriptвихід на певний файл. Ім'я незвичне, але, ймовірно, витягнуте з більшого сценарію оболонки.
mctylr

1
$(uname -n)Інтерпретуються в командному рядку запустити unameкоманду з -nпрапором , щоб роздрукувати ім'я хоста системи.
mctylr

0

Я думаю, ви також можете використати autoexpect для цього завдання.


Я отримав "команду не знайдено" в Ubuntu, коли я спробував її.
Йонас

1
Я думаю, що це буде частиною пакету Expect, який може не встановитись за замовчуванням. Посилання: 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.