Выполнение списка обрабатывает без procfs

Можно использовать copyfs для обеспечения систематического управления версиями файлов в файловой иерархии. Copyfs сохраняет все версии всех файлов. Это использует базовую файловую систему по Вашему выбору для хранения содержания файла.

Etckeeper не является правильным инструментом. Это - слой сверху системы управления версиями, разработанной, чтобы сделать лучшее задание на каталоге файла конфигурации системы (/etc). В зависимости от Ваших требований Вы можете использовать систему управления версиями, такую как подверсия, мерзавец, подвижный, и т.д. Они могут быть полезными, если можно вставить действие фиксации в рабочий процесс каждый раз, когда новая версия файла появляется.

Другой подход может быть должен переименовать или переместить файлы, поскольку они входят. Linux предоставляет inotify услугу для реакции на события файловой системы, такие как создание или закрытие файла.

2
25.03.2015, 11:46
2 ответа

При достаточно большом значении 'undolevel' Vim должен иметь возможность отменить изменения за весь день. Если вы выйдете из Vim в промежутке, вам также потребуется включить постоянную отмену , установив параметр 'undofile' .

Vim захватывает не просто последовательный список команд для отмены, но фактически дерево всех изменений. Он также имеет несколько команд вокруг отмены (cp. : help undo-branches ); вернуться в штат в начале дня,

:earlier 12h

является хорошим кандидатом.

Существуют также плагины, такие как Gundo и undotree.vim , которые визуализируют дерево отмены и позволяют перемещаться по нему.

Если навигация по дереву отмены звучит слишком громоздко (например, из-за того, что вы вносите много изменений в течение дня), вы также можете добавить облегченную систему управления версиями (в дополнение к Subversion), как мой плагин writebackup , и явно создать резервную копию в определенное время.

-121--52468-

Здесь существует три несвязанных использования @ .

В $ @ символ @ является именем автоматической переменной , которая может использоваться в правиле. Значение этой переменной является целью, которую строит правило.

Если @ используется в самом начале строки рецепта (команды) сразу после символа табуляции, команда не будет напечатана , когда она будет выполнена.

Символ @ в другом месте не является особым.

Таким образом, в вашем примере для построения программы :

  1. Вызывается функция file . Он записывает зависимости целевой переменной ( $ ^ автоматическая переменная) в файл program.in .
  2. Выполняется любая команда, сохраненная в переменной CMD , с параметрами, сохраненными в переменной CMDFLAGS , плюс дополнительный параметр @ program.in . Это зависит от того, что такое CMD .

  3. Команда rm program.in выполняется без предварительной печати.

Несколько команд рассматривают параметр, начинающийся с @ , как указывающий файл, из которого требуется прочитать дополнительные параметры. Это соглашение DOS, которое возникло, потому что DOS имел строгий предел длины командной строки и не путь интерполировать вывод команды в командную строку. Это редкость в мире Unix, так как Unix не имеет этих ограничений. Эффект рецепта, таким образом, вероятно, тот же, что и

$(CMD) $(CMDFLAGS) $(OBJECTS)
-121--41555-

ps получает всю его информацию из смонтированных procfs, поэтому без procfs нет источника для получения этой информации. Единственный вариант, который я вижу, это монтировать proc для вызова ps/top, а затем демонтировать его, что минимизирует риск.

2
27.01.2020, 22:00

Не установка просрочек звучит как ошибка. На самом деле это не улучшает безопасность, и Linux спроектирован так, чтобы /proc был смонтирован. В частности, как вы обнаружили, /proc - это то, как вы находите информацию о процессах (в Linux, ps - это просто красивый принтер для информации, найденной в разделе /proc).

Если у вас есть веские причины не давать некоторым приложениям доступ к /proc, запустите их в контейнере или пространстве имен . Смонтируйте /proc в корневом каталоге и оставьте его вне пространства имен.

2
27.01.2020, 22:00

Теги

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