Назад | Перейти на главную страницу

поиск файлов, соответствующих точному размеру: кратному 4096 байтам

У меня есть несколько сайтов drupal, работающих на моем локальном компьютере с установленным WAMP (apache 2.2.17, php 5.3.4 и mysql 5.1.53). Каждый раз, когда я пытаюсь зайти на административную страницу, кажется, что процесс php умирает. Из apache_error.log:

[Fri Nov 09 10:43:26 2012] [notice] Parent: child process exited with status 255 -- Restarting.
[Fri Nov 09 10:43:26 2012] [notice] Apache/2.2.17 (Win32) PHP/5.3.4 configured -- resuming normal operations
[Fri Nov 09 10:43:26 2012] [notice] Server built: Oct 24 2010 13:33:15
[Fri Nov 09 10:43:26 2012] [notice] Parent: Created child process 9924
[Fri Nov 09 10:43:26 2012] [notice] Child 9924: Child process is running
[Fri Nov 09 10:43:26 2012] [notice] Child 9924: Acquired the start mutex.
[Fri Nov 09 10:43:26 2012] [notice] Child 9924: Starting 64 worker threads.
[Fri Nov 09 10:43:26 2012] [notice] Child 9924: Starting thread to listen on port 80.

Некоторые исследования привели меня к сообщению об ошибке php на 'Ошибка 4096 байт'. Я хотел бы посмотреть, есть ли у меня файлы, размер которых кратен 4096 байтам, но я не знаю, как это сделать.

У меня установлен gitBash, и я могу использовать большинство из типичных инструментов Linux через это (find, grep и т.д.), но я недостаточно знаком с Linux, чтобы разобраться в этом самостоятельно. Небольшая помощь?

Поскольку вы работаете в Windows, вы можете сделать это с помощью PowerShell.

Get-ChildItem C:\PathToTopDirectory -recurse | ForEach-Object {    
  if(($_.length % 4096 -eq 0) -and (! $_.PSIsContainer)) {Write-Host $_.FullName}    
}

Это позволяет получить список всего, что находится ниже пути в команде Get-ChildItem, и оценить каждый объект. Поскольку папки не имеют размера, мы хотим исключить их, вот что -and (! $_.PSIsContainer) делает.

Затем нам просто нужно посмотреть, оставляет ли размер файла в байтах (которое является свойством длины, деленное на 4096, нулевой остаток, что означает, что файл имеет размер 4096 или кратное ему. $_.length % 4096 -eq 0 блок делает.

В Write-Host командлет запишет вывод в командное окно. Вы можете легко заменить это на Out-File c:\stuff.txt если вы предпочитаете его в текстовом файле.