Создайте файл, подобный файлу журнала в CentOS, при обновлении этого файла журнала также обновляется копия файла журнала. Может быть, я использую эту команду:

ln -s logfile copy_of_logfile

Затем, когда добавляется содержимое файла журнала, также добавляется содержимое файла copy_of_logfile ==> это нормально, но когда содержимое файла журнала удаляется, содержимое файла copy_of_logfile также удаляется.

Я хочу, чтобы это было, когда добавляется содержимое файла журнала, затем добавляется содержимое файла copy_of_logfile, а когда содержимое файла журнала удаляется, я хочу, чтобы содержимое файла copy_of_logfile НЕ удалялось. Пожалуйста, скажите мне, как это сделать.

3 ответа3

1
   ln -s logfile copy_of_logfile
   then logfile's content is added, copy_of_logfile's content is also added

Хм нет Если вы создаете программную ссылку, то у вас все еще есть только один файл.
Любое действие в этом отдельном файле влияет на обе записи каталога.

Позвольте мне пояснить это на двух примерах:

Пример 1. Как будто вы создали две записи в адресной книге мобильного телефона с одним и тем же номером телефона. Вы получаете тот же результат при звонке.

Пример 2: Использование книги (указатель является записью каталога)

Перед установкой ссылки:

Index 
---------------------------------
About the author           Page 1
Index                      Page 2
Hansel and Gretchen        Page 3-10
Sneeuwwitje                Page 11-14
Intentionally left blank   Page 15
About the author.          Page 16
---------------------------------


И после мягкой ссылки:

Index 
---------------------------------
About the author           Page 1
Index                      Page 2
Hansel and Gretchen        Page 3-10
Sneeuwwitje                Page 11-14
My copy of Sneeuwwite      See index entry for Sneeuwwite
Intentionally left blank   Page 15
About the author.          Page 16
---------------------------------

В примере к истории все равно попадаешь на те же страницы. Если вы отредактируете одну из историй, то обе изменятся.


Если вы используете жесткую ссылку, а не мягкую ссылку:

Index 
---------------------------------
About the author           Page 1
Index                      Page 2
Hansel and Gretchen        Page 3-10
Sneeuwwitje                Page 11-14
My copy of Sneeuwwite      Page 11-14
Intentionally left blank   Page 15
About the author.          Page 16
---------------------------------

все в порядке, но содержимое файла журнала удалено, содержимое файла copy_of_logfile также удалено

Да, потому что это тот же файл. Это не копия.

Поскольку вы хотите иметь возможность удалять из одного из файлов, не удаляя из другого файла (копии), вам понадобятся два отдельных файла.

Или войдите в два файла, или разделите вывод, используя tee.

Альтернативой является использование tail -f для чтения всей новой информации, добавленной в исходный файл журнала. (и добавьте это в свою резервную копию).


1

будет идея использовать syslogd deamon? В его конфигурационном файле /etc/syslog.conf вы можете указать лог-файл (ы) для вашего приложения / серьезности и т.д. Для получения дополнительной информации: http://www.centos.org/docs/2/rh-cm-en- 1.0 / s1-программно-syslog.html

0

На самом деле, есть способ получить то, что вы хотите: рабочую копию данного файла. Это можно получить, создав именованную трубу,

   mkfifo mypipe.logfile

который, как следует из его названия, является файлом, в который вы будете записывать журнал, а затем читать его с помощью команды tee , чтобы отправить вывод в два идентичных файла:

   cat mypipe.logfile | tee -a logfile 1>> copy_of_logfile

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

Если вы хотите , чтобы убедиться , что процесс никогда не останавливается, добавьте while цикла,

   while [ true ]; do cat mypipe.logfile | tee -a logfile 1>> copy_log_file; done

Это может быть выполнено по сценарию, запущено при загрузке, повторно вызвано, если вы хотите, чтобы оно работало вечно, и так далее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .