команда du, объединенная с находкой-mmin

С ударом или большим количеством оболочек эта OS, очень легкая сделать, если Вы знаете выходной формат. Существует несколько способов закончиться помещенные как команды, но те, которые мне нравится лучшее, полагаются на переменное расширение.

#!/bin/bash

CMD ='some/exeutible | вывод синтаксического анализа с чем-то | и возможно что-то еще'
'$CMD'

'Говорит, что basicly "выполняют то, что между' и 'и выполнит сохраненные команды.

В Вашем примере Вы должны проанализировать stderr и произвести, затем снабжают проанализированный вывод между 'и'. Я не скажу Вам, как проанализировать вывод, но смотреть на Это, он должен помочь с расширением.

2
23.10.2014, 21:00
2 ответа

DU, похоже, не принимает файлы в нее. Я думаю, что вы ищете, - это

find /u02/archivelog -type f -mmin -1440 -exec du -ch {} +

, используя + вместо ; ; делает находки {} в виде списка и выполняется один раз, вместо того, чтобы выполнять один раз для каждого матча. Вам также нужно использовать -Type f , в противном случае он будет соответствовать самому каталогу, который изменяется каждый раз, когда добавлен новый файл. Если вы включите сам каталог в DU, вы собираетесь снова запустить размер всех файлов. -C делает DU показать «общую» линию. Если вы хотите только все, вы можете добавить | хвост -1 до конца.

2
27.01.2020, 22:05

Использование вами {} \; ограничивает аргумент ls одним элементом. Если вас интересует общее количество архивных журналов, вы можете использовать:

find /u02/archivelog -mmin -1440 -type f -exec wc -c {} + | tail -1

Чтобы получить общее количество байтов для файлов в этом каталоге.

Если {} + помещает столько имен файлов в командную строку, представленную для wc , сколько позволяет система (поэтому существует вероятность, что wc будет вызывается несколько раз, если у вас много файлов и / или очень длинные имена файлов).

1
27.01.2020, 22:05

Теги

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