Apache регистрирует неудачные вызовы в 'rm', используя exec () PHP - PullRequest
0 голосов
/ 12 сентября 2011

Чтобы очистить кэшированные версии страницы при редактировании, наша CMS, написанная на PHP, использует exec (), чтобы избавиться от всех соответствующих файлов кэша.Эти файлы всегда имеют имена, включающие строку «_lid45», скажем, где «45» - уникальный идентификатор этой страницы.

Строка exec будет выглядеть примерно так:

rm ../cache/*_lid45[._]*

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

rm: cannot remove `../cache/*_lid45[._]*': No such file or directory

Я знаю, что это не самое страшное!Но я хотел бы попытаться избавиться от сообщений, не добавляя больше нагрузки к оригинальному сценарию, если смогу.Например, я подумал о том, чтобы сначала использовать «ls», чтобы увидеть, есть ли такие файлы, а затем удалить их только в том случае, если они присутствуют, но, поскольку размер кэша иногда может быть значительным, «ls» может иногда замедляться доТочка, где это заметно влияет на производительность всего сервера!

Есть идеи?

1 Ответ

2 голосов
/ 12 сентября 2011

Просто отправьте вывод rm на /dev/null:

exec("rm ../cache/*_lid45['_]* > /dev/null 2>&1");

И это подавит все выходные данные, которые должны подавлять ошибки.

Если вы не знаете много / ничего о перенаправлении вывода, вы можете найти, что это стоит прочитать ...

...