Документ на получение для удаления файлов, более старых, чем 6 месяцев

У меня нет ответа на эту точную проблему, но я могу попытаться дать Вам подсказку того, что может происходить: Недостающие зависимости в Make-файлах.

Пример:

target: a.bytecode b.bytecode
    link a.bytecode b.bytecode -o target

a.bytecode: a.source
    compile a.source -o a.bytecode

b.bytecode: b.source
    compile b.source a.bytecode -o a.bytecode

Если Вы звоните make target все скомпилирует правильно. Компиляция a.source выполняется (произвольно, но детерминировано) сначала. Затем компиляция b.source выполняется.

Но если Вы make -j2 target оба compile команды будут выполнены параллельно. И Вы на самом деле заметите, что зависимости Вашего Make-файла повреждаются. Вторая компиляция принимает a.bytecode уже компилируется, но это не появляется в зависимостях. Таким образом, ошибка, вероятно, произойдет. Корректная строка зависимости для b.bytecode должен быть:

b.bytecode: b.source a.bytecode

Возвратиться к Вашей проблеме, если Вы не удачливы, что возможно, что команда зависает в 100%-м цикле ЦП из-за недостающей зависимости. Это, вероятно, что происходит здесь, недостающая зависимость не могла быть показана последовательной сборкой, но она была показана Вашей параллельной сборкой.

12
29.05.2013, 23:29
3 ответа

Вы могли запустить с этого:

find /your/file -mtime +182 -exec rm {} +

Где +182 дневное количество.

19
27.01.2020, 19:55
  • 1
    Спасибо за это, мог бы иметь игру с ним, но я, возможно, logrotate мог бы быть наилучшим вариантом –  scott marriott 29.05.2013, 23:55
  • 2
    @jordanm какие-либо идеи, почему этот не мог бы обработанных? $ –  scott marriott 30.05.2013, 12:51
  • 3
    ApplicationServer/logs/TestClone01 ls - общее количество буквы 3320 1048458 13 декабря 9:46 SystemOut_12.12.13_09.46.29.log 28 мая 12:44 SystemOut.log.2013-05-28-12:44:52 71 30 мая 8:57 SystemOut.log.2013-05-30-08:57:22 48432 30 мая 9:16 SystemOut.log no_env):/usr/websphere6/was61TE_LV2/ApplicationServer/logs/TestClone01$ находят SystemOut.log-mtime +1 - исполнительная комната {} + находит: 0652-083 не Может выполниться:: файл или каталог в пути не существует. –  scott marriott 30.05.2013, 12:53
  • 4
    я изменил количество дней на 1 –  scott marriott 30.05.2013, 13:09
  • 5
    @scottmarriott Не все версии find поддержка +/- для -mtime. Что ОС и версия find Вы имеете? –  jordanm 30.05.2013, 16:04

Можно просто использовать logrotate. Это уже доступно в большинстве систем Linux, и много пакетов уже имеют logrotate сценарии, предварительно сконфигурированные, или можно настроить их или записать собственное.

2
27.01.2020, 19:55

@scottmarriott Not all versions of find support +/- for -mtime. What OS and version of find do you have? – jordanm May 30 '13 at 13:04

Чтобы ответить на вопрос @jordanm, один из способов сделать это — перебрать все найденные результаты findи выполнить над ними что-то в теле цикла for.

# Using the general form:
for <identifier> in $(find <source-dir> -mtime +<days>) ; do <thing> ; done
 
# You could write their location to a parallel script file
echo '#!/bin/bash' >./old.stuff
for hogfile in $(find. -mtime +182 ) ; do echo "rm $PWD/$hogfile &" >> "./old.stuff" ; done

# Make it into an executable
chmod +x./old.stuff

# Profit
./old.stuff
0
25.05.2021, 23:19

Теги

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