시스템 프로그래밍 잘 하시는 분~~~ 도와주세요~

icristi의 이미지

HOME 디렉토리에 상당히 많은 수의 계정 디렉토리가 있으며, 각각에는 아주 다양한 파일들이 산재해 있습니다.

이런 디렉토리를 각각 탐색하면서 용량이 큰 (약 300MB이상) 파일들을 찾아 그 파일 경로와 이름을 돌려주는 프로그램을 구현하려하는데 이것이 가능하고, 또 어느 정도나 걸릴까요?

그리고 한 가지 더 조건이 있는데, 하나의 프로세서가 찾아다니는 것이 아니라 동시에 30개 이상의 자식 프로세스를 포크해서 그 모든 자식들이 동시에 찾아다니도록 해야한다는 것입니다.

참고로 제 코딩 경력은 ls 구현해봤고, ftp server client 구현해본 정도 입니다.

가능할까요..? 가능하다면 대략 어떻게 구현할까요~?

PS : 이 질문을 받으시고, 구현의 가부여부는 당연히 가능이고, 또한 시간도 얼마 안걸리게 금방 할 수 있다고 생각하실거에요.
간단하게 생각해서 recursive level 내려가면서 깊이 우선 혹은 너비우선 탐색을 하면서 일일이 파일들의 정보를 까보면 되겠지만, 그것보다는 아주 간단하게 큰 파일들을 (무작위, 중복 허용, 다만 어느 정도 산발적으로 디스크 블럭을 읽어보려고함) 찾아낼 수 있는 번뜩이는 방법 없을까요...~~~??

이거갖구 이틀째입니다.. 도와주세요~
고맙습니다~ ^________^.

ddt의 이미지

find /home -size +307200k

choissi의 이미지

30개의 자식 프로세스는 무슨 이유로 그런것인지는 모르겠지만.. 30개 만들면 파일 찾기 본연의 임무 보다도 프로세스 스위칭 오버헤드가 클것 같네요..

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

ftfuture의 이미지

콘트롤 프로세스 하나 만들고 30프로세스가 풀링 되겠죠..
공유메모리 같은곳에 리스트를 만들고 디렉토리마다 프로세스를 할당해 준담에
공유메모리에 검사결과를 저장하면 될까요?

실제 효율성 면에서는 그다지 효율성이 없을듯 합니다.

ㅡ,.ㅡ;;의 이미지

질문자는 아마도.. 상당히 많은 파일들을 빠르게 찾기 위해 짜시는것 같은데..

파일이 아주 많다면.. 프로세스 생성하는작업은 아무것도 아니겠지요.

그런데 도데체 얼마나 파일이 많길래 저걸 짜시려고하나...

어떤용도로 사용할지 얼마나성능이나게할지 현제얼마나 걸리는지에따라 그에 적절하게 짜셔야겠네요..


----------------------------------------------------------------------------

fibonacci의 이미지

하루에 한번정도 한적한 시간에 용량이 큰 파일들의 데이터 베이스를 작성하는 것은 어떨까요?
(마치 updatedb가 하는 것 처럼)
방금 만들어진 파일을 찾을수 없다는 단점이 있긴 하지만 검색속도는 최고일텐데요.

No Pain, No Gain.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.