디스크 정보를 db에 입력하고 싶은어서 도움좀 요청드립니다.

chunj101의 이미지

디스크 정보를 db에 입력하고 싶은데 막히는 부분이 있어 도움좀 요청 드립니다.

disk.sh 스크립트로 디스크 정보를 떨구고 mainmoni.sh에서 disk.sh 스크립트를 호출하여 db에 디스크 사용률과 마운트 영역을 입력하는 구조입니다.

disk.sh 스크립트는 df -H | grep -vE '^Filesystem|tmpfs|cdrom'| awk '{ print $5 " " $6 }'| sed 's/\%//g' 명령으로 아래처럼 디스크 정보를 뿌려줍니다.

15 /
5 /database
37 /backup

mainmoni.sh 에서 위 정보를 한줄씩 insert 해줘야 하는데 사용률과 마운트 영역이 각기 다른 컬럼에 들어가게 됩니다.

insert into (usage, mount) values (15, '/') 이런식으로 한줄을 입력받아 다른 컬럼으로 모든 디스크 정보에 대해 반복적으로 넣어주고 싶은데
이걸 어떻게 구현해야 할지 막막하네요...

for 문으로 넣어주면 될듯한데 15 / 가 같은 컬럼에 들어가고 분리가 안되네요..

도움좀 부탁드리겠습니다~

ymir의 이미지

$ df -H | grep -vE '^Filesystem|tmpfs|cdrom'| awk '{ print $5 " " $6 }'| sed 's/\%//g' | \
> while read -r usage mountpoint; do echo "insert into disk_usage(usage, mount) values ('$usage', '$mountpoint');"; done
insert into disk_usage(usage, mount) values ('1', '/dev');
insert into disk_usage(usage, mount) values ('55', '/');
insert into disk_usage(usage, mount) values ('0', '/sys/fs/cgroup');
insert into disk_usage(usage, mount) values ('0', '/run/lock');
insert into disk_usage(usage, mount) values ('0', '/run/shm');
insert into disk_usage(usage, mount) values ('0', '/run/user');

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

chunj101의 이미지

답변 감사합니다~
덕분에 원하던 작업이 되었습니다 ^^

백연구원의 이미지

$ df -H | grep -vE '^Filesystem|tmpfs|cdrom'| sed 's/\%//g' |  awk '{ printf("%s,\"%s\"\n",$5,$6)}' | xargs -0 -I{} sh -c "echo 'insert into (usage,mount) values ({})'"
insert into (usage,mount) values (13,"/boot")

소곤소곤

chunj101의 이미지

답변 감사합니다. 많은 도움이 되었습니다.

bushi의 이미지

$ df -H | grep -vE '^Filesystem|tmpfs|cdrom' | while read x; do y=($x); echo USAGE=${y[${#y[@]}-2]//%/} MOUNT=${y[${#y[@]}-1]}; done
USAGE=79 MOUNT=/
USAGE=58 MOUNT=/opt
USAGE=21 MOUNT=/home/schoi0/FS/sel-netbackup2_MailBox
USAGE=21 MOUNT=/home/schoi0/FS/sel-netbackup2_KDC
USAGE=68 MOUNT=/home/schoi0/FS/sel-storage2014_KOECN
USAGE=68 MOUNT=/home/schoi0/FS/sel-storage2014_Tiger
USAGE=68 MOUNT=/home/schoi0/FS/sel-storage2014_devel1

$ df -H | grep -vE '^Filesystem|tmpfs|cdrom' | while read x; do y=($x); usage="y[4]"; mountpoint="y[5]"; echo U=${!usage//%/} M=${!mountpoint}; done
U=79 M=/
U=58 M=/opt
U=21 M=/home/schoi0/FS/sel-netbackup2_MailBox
U=21 M=/home/schoi0/FS/sel-netbackup2_KDC
U=68 M=/home/schoi0/FS/sel-storage2014_KOECN
U=68 M=/home/schoi0/FS/sel-storage2014_Tiger
U=68 M=/home/schoi0/FS/sel-storage2014_devel1

]$ df -H | grep -vE '^Filesystem|tmpfs|cdrom' | sed 's@\(.*\) \(.*\)% \(.*\)@USAGE=\2 MOUNT=\3@' | while read x; do eval $x; echo U=$USAGE M=$MOUNT; done 
U=79 M=/
U=58 M=/opt
U=21 M=/home/schoi0/FS/sel-netbackup2_MailBox
U=21 M=/home/schoi0/FS/sel-netbackup2_KDC
U=68 M=/home/schoi0/FS/sel-storage2014_KOECN
U=68 M=/home/schoi0/FS/sel-storage2014_Tiger
U=68 M=/home/schoi0/FS/sel-storage2014_devel1
chunj101의 이미지

여러방식으로...알려주시다니 감사합니다~^^

댓글 달기

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