Как очистить (усечь) файлы журнала в Linux
В какой-то момент жизненного цикла Sysadmin может потребоваться очистить файл журнала, чтобы сэкономить место на системном диске или по любой другой причине. Существуют различные способы очистки файла в системе Linux.
Пустой файл журнала с помощью команды truncate
Самый безопасный способ очистки файла журнала в Linux — использование команды truncate. Команда усечения используется для сокращения или расширения размера каждого ФАЙЛА до указанного размера.
truncate -s 0 logfile
Где -s
используется для установки или настройки размера файла по размеру байтов. file
Может быть относительно текущего каталога или абсолютный путь к файлу при условии.
Для полных опций команды усечения используйте опцию --help
Usage: truncate OPTION... FILE... Shrink or extend the size of each FILE to the specified size A FILE argument that does not exist is created. If a FILE is larger than the specified size, the extra data is lost. If a FILE is shorter, it is extended and the extended part (hole) reads as zero bytes. Mandatory arguments to long options are mandatory for short options too. -c, --no-create do not create any files -o, --io-blocks treat SIZE as number of IO blocks instead of bytes -r, --reference=RFILE base size on RFILE -s, --size=SIZE set or adjust the file size by SIZE bytes --help display this help and exit --version output version information and exit The SIZE argument is an integer and optional unit (example: 10K is 10*1024). Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000). SIZE may also be prefixed by one of the following modifying characters: '+' extend by, '-' reduce by, '<' at most, '>' at least, '/' round down to multiple of, '%' round up to multiple of. GNU coreutils online help: <https://www.gnu.org/software/coreutils/> Full documentation at: <https://www.gnu.org/software/coreutils/truncate> or available locally via: info '(coreutils) truncate invocation'
Пустой файл журнала, используя:> или true>
Вы также можете использовать :>
для очистки содержимого файла. Синтаксис
:> logfile
Это эквивалентно
true > logfile
Пустой файл журнала с помощью команды echo
Если вы ничего не отобразите в файле, он очистит содержимое, чтобы очистить его.
echo "" > logfile
Это так же как
echo > testfile
Пустой файл журнала с помощью команды dd
Синтаксис для использования dd
команды
dd if=/dev/null of=logfile
или
dd if=/dev/null > logfile
Смотрите примеры ниже
$ ls -l testfile -rw-r--r-- 1 jmutai jmutai 1338 Oct 2 23:07 testfile $ [[email protected] tmp]$ ls -l testfile -rw-r--r-- 1 jmutai jmutai 1338 Oct 2 23:07 testfile [[email protected] tmp]$ dd if=/dev/null of=testfile 0+0 records in 0+0 records out 0 bytes copied, 0.000322652 s, 0.0 kB/s [[email protected] tmp]$ ls -l testfile -rw-r--r-- 1 jmutai jmutai 0 Oct 2 23:33 testfile
Для нескольких файлов достаточно простого цикла в bash.
for file in logfile1 logfile2 logfile2 ... ; do truncate -s 0 $file or dd if=/dev/null of=$file or :>$file done
Используйте любой из методов, чтобы очистить ваши большие файлы журнала.