쉘 프로그래밍 awk를 이용해서 만들고 있어요.

saladin20의 이미지

페도라 리눅스 5사용중입니다.
커널은 2.6이구요

쉘 프로그래밍 중인데요.

특정 용량이상의 로그파일을 삭제후 실행을 해야됩니다.

즉 예를 들어서.

aa.php란 프로그램을 실행할때 aa.vdb란 파일로 실행기록이 남거든요.

이걸 주기적으로 정리해줘야되는데..

저 파일이 100메가 이상이면 삭제해줘서 새롭게 생성이 되도록 해야됩니다.

vdb파일은 aa.php를 실행시 자동생성됩니다.

아직 이쪽은 초보라서 사이즈 추출까지는 어떻게 만들었는데요.

ls -l | awk '{if ($5 >= 10000000) print$9}'>ll1
cat ll1 | awk -F. '{print$1}'>ll2

이렇게 해서 aa란 파일 명까지는 추출했는데요=_=

저기서 $1에 aa란 값이 추출되거든요. 그럼 추출된값을 변수로 받아서 $1.php 란 파일을 한번 실행하고 난후

$1.vbd란 파일을 삭제하고 싶은데..

이걸 어떻게 하는지 모르겠네요..

이런식으로는 안되더라구요...

cat ll2 | awk '{$1".php"}'

라고 실행시켜 보니 안되더라구요....=_=

글고 system이라는 내장함수로 유닉스 내부명령어를 awk로 실행할수 있다고 하는데

이건 리눅스에서 적용하려면 형식이 어떻게 되는지....

awk '{system(\rm $1.vdb}' 이런식인가요?

ㅜㅜ책을 찾아봐도 옵션언급이 없어서 어떻게 찾아야될지 난감해서.

도와주세요!

ihavnoth의 이미지

심심하실때 읽어보세요. 많은 것들을 할 수 있습니다.
PDF문서 http://www.tldp.org/LDP/abs/abs-guide.pdf

find /tmp -size +100M -exec ls {} \;
목록 확인하시고

find /tmp -size +100M -exec rm -rf {} \;
이렇게 하면 /tmp에 100M이상 파일 삭제합니다

ls -al $( ls -l | awk '{ if ($5 >= 10000000) print $8 }' )
확인하시고

rm -rf $( ls -l | awk '{ if ($5 >= 10000000) print $8 }' )
삭제 됩니다.

php에 system() 함수가 있다면

 
이렇게 예상되지만... 권한이있으지는 모르겠습니다.
 
rm 에서 f옵션 주실때 조심하세요.
뒤에오는 파일명 잘못되서 "/" 가 되거나 "*"로 되버리면
골치 아파요....
 
 
로그파일인데 100M넘었다고 지워버린다면 조금 이상해 보이네요.
20M씩 끊어서
 
log --(10M)
log1--(20M)
log2--(20M
log3--(20M)
log4--(20M)
.
.
.
log9--(20M)
 
이렇게 구성하다 log파일이 20M되면 log9 지우고 
로그파일명 뒤에 숫자 +1씩 해줘야 하지 않을까요?
 
shell script로 만들어서 crontab에 등록하셔도 되고
logrotate라는 유틸도 있습니다.
특별한 경우가 아니라면 파일 삭제루틴이 php코드에 들어가는게
좋아보이지 않네요...

없음

saladin20의 이미지

답글에 감사드립니다.!!
로그파일을 삭제하는 이유는 리눅스 시스템 로그가 아닌
aa.php프로그램을 자체적으로 만든것에 대한 로그이기 때문에
로그가 많아지면 프로그램 실행이 좀 버벅거리는듯 해서 그런답니다.^^
내일 한번 더 봐야겠네요.
이것때문에 일주일을 끙끙했는데 좀더 공부해야겠습니다.
정말 감사드립니다.(__)

bushi의 이미지

로그파일만 전문적으로 관리해주는 놈이 있습니다.
주기적으로 할 수도 있고,
크기를 지정해놓고 감시할 수도 있고,
오래된 놈을 몇개나 백업할지 정해 줄 수도 있고,
백업한 놈을 압축해서 보관할 수도 있고.

침이 줄줄 흐른다면... man logrotate 해보세요.

OTL

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.