{"id":408,"date":"2019-09-09T14:53:40","date_gmt":"2019-09-09T05:53:40","guid":{"rendered":"https:\/\/hyandmj.asuscomm.com\/hblog\/?p=408"},"modified":"2020-04-16T16:10:47","modified_gmt":"2020-04-16T07:10:47","slug":"s-m-a-r-t-%ea%b8%b0%eb%8a%a5%ec%9d%84-%ed%99%9c%ec%9a%a9%ed%95%9c-%ec%a0%80%ec%9e%a5%ec%9e%a5%ec%b9%98-%eb%aa%a8%eb%8b%88%ed%84%b0%eb%a7%81-2","status":"publish","type":"post","link":"https:\/\/hyandmj.asuscomm.com\/hblog\/?p=408","title":{"rendered":"S.M.A.R.T. \uae30\ub2a5\uc744 \ud65c\uc6a9\ud55c \uc800\uc7a5\uc7a5\uce58 \ubaa8\ub2c8\ud130\ub9c1 (2)"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Motive<\/h3>\n\n\n\n<p><a href=\"https:\/\/hyandmj.asuscomm.com\/hblog\/?p=370\">\uc9c0\ub09c \uae00<\/a>\uc5d0\uc11c <code>smartd<\/code>\uc640 <code>smartctl<\/code>\uc758 \uac04\ub2e8\ud55c \uae30\ub2a5\uc5d0 \ub300\ud574 \uc18c\uac1c\ud558\uc600\ub2e4. \ub098\uc758 \uad81\uadf9\uc801\uc778 \ubaa9\ud45c\ub294 \uc774 S.M.A.R.T. raw \uc815\ubcf4\ub97c \uc801\uc808\ud558\uac8c \uac00\uacf5\ud558\uace0, \ub298 \ud30c\uc545\ud558\uae30 \uc27d\ub3c4\ub85d \uc2e4\uc2dc\uac04 \ubaa8\ub2c8\ud130\ub9c1\uc744 \uad6c\ucd95\ud558\ub294 \uac83.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud658\uacbd<\/h3>\n\n\n\n<p>&#8211; \uc791\uc5c5 \ub178\ub4dc: \uadf8\ub0e5 \ubcf4\ud1b5 \uc11c\ubc84<br>&#8211; OS: Ubuntu 18.04<br>&#8211; Shell: Bash 4.4<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Parsing data<\/h3>\n\n\n\n<p>\uc544\ub798\uc640 \uac19\uc740 \ucee4\ub9e8\ub4dc\ub97c \uc785\ub825\ud558\uba74 \uad6c\uccb4\uc801\uc778 \ub4dc\ub77c\uc774\ube0c\uc758 \uc18d\uc131\uc744 \ucd9c\ub825\ud574 \uc900\ub2e4\ub294 \uac83\uc740 \uc774\ubbf8 <a href=\"https:\/\/hyandmj.asuscomm.com\/hblog\/?p=370\">\uc774\uc804 \uae00<\/a>\uc5d0\uc11c \ub2e4\ub918\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo smartctl -A \/dev\/sda\nsmartctl 6.6 2016-05-31 r4324 &#91;x86_64-linux-5.0.0-23-generic] (local build)\nCopyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org\n\n=== START OF READ SMART DATA SECTION ===\nSMART Attributes Data Structure revision number: 1\nVendor Specific SMART Attributes with Thresholds:\nID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE\n  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0\n  9 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       1320\n 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       4\n177 Wear_Leveling_Count     0x0013   100   100   000    Pre-fail  Always       -       0\n179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always       -       0\n181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0\n182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0\n183 Runtime_Bad_Block       0x0013   100   100   010    Pre-fail  Always       -       0\n187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0\n190 Airflow_Temperature_Cel 0x0032   072   062   000    Old_age   Always       -       28\n195 Hardware_ECC_Recovered  0x001a   200   200   000    Old_age   Always       -       0\n199 UDMA_CRC_Error_Count    0x003e   100   100   000    Old_age   Always       -       0\n235 Unknown_Attribute       0x0012   099   099   000    Old_age   Always       -       1\n241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       364715870<\/code><\/pre>\n\n\n\n<p>\ucd9c\ub825\uc774 \uc798 \ub418\ub294\uac70\uae4c\uc9c0\ub294 \uc88b\uc740\ub370 \uac01 \uc18d\uc131ID\ubcc4 \uac12\ub4e4\uc744 \ud65c\uc6a9\ud558\uae30\uc5d0\ub294 \uc57d\uac04 \uc544\uc26c\uc6b4 \ucd9c\ub825 \ud3ec\ub9f7\uc774\ub2e4. (<code>nvidia-smi<\/code>\ub294 \ucffc\ub9ac\uc6a9 \ucd9c\ub825 \uae30\ub2a5\uc744 \ub2e4 \uc81c\uacf5\ud558\ub358\ub370&#8230; \ub300\uae30\uc5c5\uc5d0\uc11c \uac1c\ubc1c\ud558\ub294 \ud504\ub85c\uadf8\ub7a8\uc774\ub77c \ub2e4\ub974\uae34 \ub2e4\ub978\uac74\uac00) \uc18d\uc131ID\uc640 \uac01\uac01\uc758 ID\uc5d0 \ub530\ub978 raw_value\ub4e4\ub9cc \ub098\uc5f4\ud574\uc11c \ucd9c\ub825\ud574\uc8fc\ub294 \uac04\ub2e8\ud55c \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc9dc\ubcf4\uc558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\n################################################################################\n#   &lt; smarter.sh >\n#\n#   Script for parsing smartctl output\n################################################################################\n\n# Check sudo\nif &#91; \"$EUID\" -ne 0 ]\n    then echo \"This script must be run as root.\"\n    exit 0\nfi\n\n# Check number of arguments\nif &#91; $# -ne 1 ]\nthen\n    echo \"&#91;Error] Number of arguments mush be 1, which is any disk\"\n    echo \"        Example: .\/smarter.sh \/dev\/sda\"\n    exit 0\nfi\n\n# Which disk to be checked\n    DISK=${1}\n    if &#91; ! -e ${DISK} ]; then\n    echo \"Disk\" ${DISK} \"not found\"\n    exit 0\nfi\n\n# Change input field separator to cut line by line\nIFS_backup=\"${IFS}\"\nIFS=$'\\n'\n\n# Erase header part not used\nCUTLINE=`smartctl -A ${DISK} | grep -n 'ID#'`\nCUTLINE=${CUTLINE%:*}\nRAW=(`smartctl -A ${DISK} | sed -e '1,'${CUTLINE}'d'`)\n\n# Restore IFS\nIFS=${IFS_backup}\n\n# Divide them into each array\nN=${#RAW&#91;*]}\nfor (( i=0; i&lt;=$(( N -1 )); i++ ))\ndo\n    ARRAY=(${RAW&#91;${i}]})\n    echo -n ${ARRAY&#91;0]} ${ARRAY&#91;9]}\" \" \ndone\n\nexit 1<\/code><\/pre>\n\n\n\n<p>&#8211; Line 9~13\ub294 \uc2a4\ud06c\ub9bd\ud2b8\uac00 <code>sudo<\/code> \uad8c\ud55c\uc73c\ub85c \uc2e4\ud589\ub418\uace0 \uc788\ub294\uc9c0\ub97c \uccb4\ud06c\ud558\ub294 \ubd80\ubd84\uc774\ub2e4. <code>smartctl<\/code>\uc740 \ub514\ubc14\uc774\uc2a4\ub97c \uc81c\uc5b4\ud558\uace0 \ubd84\uc11d\ud558\ubbc0\ub85c \uad00\ub9ac\uc790 \uad8c\ud55c\uc774 \ud544\uc218\uc774\ub2e4.<br>&#8211;  Line 15~21\ub294 \uc778\uc790\uc758 \uac1c\uc218\uac00 1\uac1c\uac00 \ub9de\ub294\uc9c0 \ud655\uc778\ud558\ub294 \ubd80\ubd84\uc774\ub2e4. \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc778\uc790\uc5c6\uc774 \uc2e4\ud589\ud558\uba74 \uc5d0\ub7ec \uba54\uc2dc\uc9c0\ub97c \ub744\uc6b0\uba74\uc11c \uc608\uc2dc\ub97c \ubcf4\uc5ec\uc900\ub2e4.<br>&#8211; Line 23~28\ub294 \uc785\ub825\ub41c \uc778\uc790\ub97c \uc77d\uc5b4 \uadf8 \ub4dc\ub77c\uc774\ube0c\uac00 \uc815\ub9d0\ub85c \uc874\uc7ac\ud558\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4. \uc5c6\ub294 \ub4dc\ub77c\uc774\ube0c\ub97c \uac80\uc0ac\ud560 \uc218\ub294 \uc5c6\uae30\uc5d0&#8230;<br>&#8211; Line 30~32\uacfc line 40~41\uc740 <code>smartctl<\/code> \ucd9c\ub825\uc744 \uc77d\uc5b4\uc11c \ud55c \uc904\uc529 \ubc30\uc5f4 \uc6d0\uc18c\ub85c \ud560\ub2f9\ud558\uae30 \uc704\ud55c \ubd80\ubd84\uc774\ub2e4. \uad6c\uccb4\uc801\uc778 \uc124\uba85\uc740  <a href=\"http:\/\/bahndal.egloos.com\/583019\">http:\/\/bahndal.egloos.com\/583019<\/a> \ub97c \ucc38\uace0.<br>&#8211; Line 34~37\uc740 \ucd9c\ub825 \ub0b4\uc6a9\uc758 \ucc98\uc74c\uc5d0 \uc4f0\uc798\ub370\uae30 \uc5c6\ub294 \ub0b4\uc6a9 \ub2e4 \uce58\uc6cc\ubc84\ub9ac\ub294 \ubd80\ubd84\uc774\ub2e4. \ub0b4\uac00 \uad00\uc2ec\uc788\ub294 \uac12\uc740 \uc624\uc9c1 raw value\ubfd0\uc774\uae30 \ub54c\ubb38.<br>&#8211; Line 42~48\ub294 parsing\uc774 \ub05d\ub09c attribute ID\uc640 raw value\ub97c \ubc88\uac08\uc544\uac00\uba70 \uc258\uc5d0 \ucd9c\ub825\ud574\uc900\ub2e4.<\/p>\n\n\n\n<p>\uc774 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc2e4\ud589\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \uacb0\uacfc\ub97c \ucd9c\ub825\ud574 \uc900\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo .\/smarter.sh \/dev\/sda\n5 0 9 1320 12 4 177 0 179 0 181 0 182 0 183 0 187 0 190 28 195 0 199 0 235 1 241 364715870<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Calculate Health &amp; Save to DB<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\n################################################################################\n#   &lt; SmartMon.sh >\n#\n#   Script for recording S.M.A.R.T. attributes to influxDB server.\n################################################################################\n\n# influxDB\nDBSERVER='xxxxx'\nUSERNAME='xxxxx'\nPASSWORD='xxxxx'\nDATABASE='status'\nSERIES='smart'\nHOSTNAME='this_computer'\nDEVICE=('\/dev\/sda')\n\n# Critical threshold table\ndeclare -A THR_CRIT\nTHR_CRIT&#91;5]=1\nTHR_CRIT&#91;10]=1\nTHR_CRIT&#91;184]=1\nTHR_CRIT&#91;187]=1\nTHR_CRIT&#91;188]=1\nTHR_CRIT&#91;196]=1\nTHR_CRIT&#91;197]=1\nTHR_CRIT&#91;198]=1\nTHR_CRIT&#91;201]=1\n\n# Warning threshold table\ndeclare -A THR_WARN\nTHR_WARN&#91;1]=1\nTHR_WARN&#91;9]=80000\nTHR_WARN&#91;194]=60\n\n# Send quary regularly\nLEN=${#DEVICE&#91;@]}\nwhile :\ndo\n    for (( i=0; i&lt;${LEN}; i++ ))\n    do\n        echo For ${DEVICE&#91;i]},\n        RESULT=(`.\/smarter\/smarter.sh ${DEVICE&#91;i]}`)\n        if &#91; $? -eq 0 ]; then\n            echo \"Error accured\"\n            exit 0\n        fi\n\n        LEN2=${#RESULT&#91;@]}\n        IS_CRIT=0\n        IS_WARN=0\n        for (( j=0; j&lt;$((${LEN2}\/2)); j++ ))\n        do\n            ID&#91;j]=${RESULT&#91;$((j*2))]}\n            VAL&#91;j]=${RESULT&#91;$((j*2+1))]}\n\n            if &#91; ! -v ${THR_CRIT&#91;${ID&#91;j]}]} ]; then\n                if &#91; \"${VAL&#91;j]}\" -ge \"${THR_CRIT&#91;${ID&#91;j]}]}\" ]; then\n                    echo Critical for ${ID&#91;j]} with value ${VAL&#91;j]} by threshold ${THR_CRIT&#91;${ID&#91;j]}]}\n                    IS_CRIT=1\n                fi\n            fi\n\n            if &#91; ! -v ${THR_WARN&#91;${ID&#91;j]}]} ]; then\n                if &#91; \"${VAL&#91;j]}\" -ge \"${THR_WARN&#91;${ID&#91;j]}]}\" ]; then\n                    echo Warning for ${ID&#91;j]} with value ${VAL&#91;j]} by threshold ${THR_WARN&#91;${ID&#91;j]}]}\n                    IS_WARN=1\n                fi\n            fi\n        done\n\n        # Decide status\n        if   &#91; ${IS_CRIT} == 1 ]; then\n            STATUS=0\n        elif &#91; ${IS_WARN} == 1 ]; then\n            STATUS=1\n        else\n            STATUS=2\n        fi\n\n        echo \"Crit:  \" ${IS_CRIT}\n        echo \"Warn:  \" ${IS_WARN}\n        echo \"Status:\" ${STATUS}\n        echo \"\"\n\n        influx -host ${DBSERVER} -username ${USERNAME} -password ${PASSWORD} -database ${DATABASE} -execute \"INSERT ${SERIES},host=${HOSTNAME},device=${DEVICE&#91;i]} status=${STATUS}\"\n    done\n\n    sleep 1800\ndone<\/code><\/pre>\n\n\n\n<p>&#8211; Line 9~16: DB \uc124\uc815. \ubcf8\uc778\uc758 DB\uc11c\ubc84 \uc8fc\uc18c\uc640 \uacc4\uc815, DB\uba85 \ub4f1\uc744 \uc801\uc5b4\ub123\uc73c\uba74 \ub41c\ub2e4.<br>&#8211; Line 18~28: \ub098\uc758 critical threshold \uc124\uc815. \uc608\ub97c \ub4e4\uba74 5\ubc88 ID\uc758 attribute\uac00 1\uc774\uc0c1\uc774\uba74 \ub4dc\ub77c\uc774\ube0c\uac00 \uce58\uba85\uc801\uc778 \uc0c1\ud0dc\ub77c\uace0 \uc815\uc758\ud55c\ub2e4. \ub204\uad6c\ub4e0\uc9c0 \uc790\uae30 \uc785\ub9db\uc5d0 \ub9de\uac8c \uc124\uc815\ud574\uc8fc\uba74 \ub428. \uc608\ub97c \ub4e4\uc5b4\uc11c, &#8220;\ub098\ub294 1\ubc88 ID\uc758 \uac12\uc774 1 \uc774\uc0c1\ub9cc \ub3fc\ub3c4 \ub4dc\ub77c\uc774\ube0c\uac00 \ub9db\ud0f1\uc774\uac00 \uac14\ub2e4\uace0 \ubcf4\ub294\ub370?&#8221; \ub77c\ub294 \uc0ac\ub78c\uc740 <code>THR_CRIT[1]=1<\/code> \ub97c \uc801\uc5b4\ub123\uc5b4\uc8fc\uba74 \ub41c\ub2e4.<br>&#8211; Line 30~34: \ub098\uc758 warning threshold \uc124\uc815. \uc608\ub97c \ub4e4\uba74 9\ubc88 ID\uc758 attribute\uac00 80,000 \uc774\uc0c1\uc774\uba74 (\ub4dc\ub77c\uc774\ube0c\ub97c 8\ub9cc \uc2dc\uac04 \uc774\uc0c1 \uc0ac\uc6a9\ud558\uba74) \uc2ac\uc2ac \ubd88\uc548\ubd88\uc548 \ud55c \uc0c1\ud0dc\ub77c\uace0 \uc815\uc758\ud55c\ub2e4.<br>&#8211; Line 37, 40: \uc124\uc815\ud55c \ub4dc\ub77c\uc774\ube0c\uc5d0 \ub300\ud55c \ub8e8\ud504\ub2e4. Line 16\uc5d0\uc11c \uc124\uc815\ud55c \ubc30\uc5f4\uc5d0 \uc788\ub294 \ub4dc\ub77c\uc774\ube0c\ub97c \uc21c\ucc28\uc801\uc73c\ub85c \uac80\uc0ac\ud55c\ub2e4.<br>&#8211; Line 42~47: \uc704\uc5d0\uc11c parsing\uc6a9\uc73c\ub85c \ub9cc\ub4e4\uc5b4 \ub454 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc2e4\ud589\ud574\uc11c \uacb0\uacfc\uac12\uc744 \uac00\uc838\uc628\ub2e4.<br>&#8211; Line 49~79: Critical threshold\uc640 warning threshold\ub97c \uc77d\uc5b4\uc640\uc11c \ub4dc\ub77c\uc774\ube0c \uc0c1\ud0dc\ub97c \uac80\uc0ac\ud558\uace0 \uc0c1\ud0dc\uac00 \uc88b\uc740\uc9c0 (2), \ubd88\uc548\ud55c\uc9c0 (1), \ub9db\uc774 \uac14\ub294\uc9c0 (0)\ub97c \ud310\ubcc4\ud55c\ub2e4.<br>&#8211; Line 86: \ub4dc\ub77c\uc774\ube0c \uc0c1\ud0dc\ub97c DB\uc11c\ubc84\uc5d0 \uae30\ub85d\ud55c\ub2e4. \ub098\ub294 influx\ub97c \uc4f0\uace0 \uc788\ub294\ub370, mysql\uc744 \uc4f4\ub2e4\uba74 mysql \ucffc\ub9ac\ub97c \ud574\ub2f9 \uc704\uce58\uc5d0 \uc801\uc6a9\ud558\uba74 \ub420 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc194\uc9c1\ud788 \uc124\uba85\uc744 \uc880 \ub300\ucda9 \uc4f4 \uac10\uc774 \uc788\ub294\ub370 \uc6d0\ud558\ub294 \uc0ac\ub78c\uc774 \uc788\ub2e4\uba74 \uadf8 \ubd80\ubd84\uc744 \ub354 \uc790\uc138\ud788 \uc801\uaca0\uc74c.<\/p>\n\n\n\n<p>\uc704\uc758 \uc258 \uc2a4\ud06c\ub9bd\ud2b8\ub294 bash 4 \uc774\uc0c1\uc5d0\uc11c\ub9cc \uc791\ub3d9\ud560 \uac83\uc784. (\uc544\ub9c8\ub3c4?) Line 19, 31\uc5d0\uc11c \uc120\uc5b8\ud55c threshold \uac12\ub4e4\uc774 \uc5f0\uad00 \ubc30\uc5f4\uc744 \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc774\ub2e4. ( <a href=\"https:\/\/linuxhint.com\/associative_array_bash\/\">https:\/\/linuxhint.com\/associative_array_bash\/<\/a> ) \ubcf8\uc778\uc758 bash \ubc84\uc804\uc774 \ub0ae\ub2e4\uba74 4 \uc774\uc0c1\uc744 \ub2e4\uc6b4\ubc1b\uc544\uc11c \uc124\uce58\ud558\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<p>DB\uc11c\ubc84\uc5d0 \uae30\ub85d\ub41c \uac01 \ub4dc\ub77c\uc774\ube0c\uc758 health\ub294 line 89\uc5d0 \uc758\ud558\uba74 30\ubd84 \ub9c8\ub2e4 \uae30\ub85d\ub41c\ub2e4. \uc774\ub807\uac8c \uc800\uc7a5\ub41c \uac80\uc9c4\uae30\ub85d\uc744 \uc801\uc808\ud55c \ud234\ub85c \ubaa8\ub2c8\ud130\uc5d0 \ub744\uc6b0\uba74 \ub428. \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc368\ub3c4 \uc88b\uace0 php\ub97c \uc368\ub3c4 \uc88b\ub2e4. \ub098\ub294 \uac1c\uc778\uc801\uc73c\ub85c Grafana\ub97c \uc4f0\uace0 \uc788\uc74c. \uadf8 \uc678\uc5d0 \uc624\ud508\uc18c\uc2a4\ub85c \uc5ec\ub7ec DB \ubaa8\ub2c8\ud130\ub9c1 \uc2dc\uc2a4\ud15c\uc774 \uacf5\uac1c\ub418\uc5b4 \uc788\ub2e4. \uc608\uc058\uac8c \uc0c1\ud0dc \ub744\uc6b0\uae30\ub294 \uc774 \uae00\uc758 \uc8fc\uc81c\uc5d0\uc11c \ubc97\uc5b4\ub098\ubbc0\ub85c \uc0dd\ub7b5\ud558\ub3c4\ub85d \ud55c\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Service \ub4f1\ub85d<\/h3>\n\n\n\n<p>\ub9e4\ubc88 \uc11c\ubc84\ub97c \ub9ac\ubd93\ud560 \ub54c\ub9c8\ub2e4 \uc774 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc2e4\ud589\ud574 \ub450\uae30\uc5d0\ub294 \uadc0\ucc2e\uc73c\ubbc0\ub85c <code>systemctl<\/code>\uc5d0 \ub370\ubaac\uc744 \ub4f1\ub85d\ud574\uc11c \uc2dc\uc2a4\ud15c\uc774 \uc2dc\uc791\ub420 \ub54c \uc790\ub3d9\uc73c\ub85c \uc2e4\ud589\ub418\ub3c4\ub85d \ud574\uc8fc\uc790.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Unit]\nDescription=SmartMon\nAfter=influxd.service\n\n&#91;Service]\nType=simple\nUser=root\nWorkingDirectory=&#91;\uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc704\uce58]\nExecStart=&#91;\uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc704\uce58]\/smartMon.sh\nRestart=always\n\n\n&#91;Install]\nWantedBy=multi-user.target<\/code><\/pre>\n\n\n\n<p>\ud574\ub2f9 \ub0b4\uc6a9\uc744 \ud14d\uc2a4\ud2b8 \uc5d0\ub514\ud130\ub85c \uc800\uc7a5\ud55c\ub2e4. \ud30c\uc77c\uba85\uc740 \ub300\ucda9 <code>smartMon.service<\/code> \uc815\ub3c4\uba74 \ub418\ub824\ub098? \uc774 \ud30c\uc77c\uc744 <code>\/etc\/systemd\/system<\/code>\uc5d0 \uac00\uc838\ub2e4 \ub450\uace0, (\ubcf4\ud1b5\uc740 \ub9c1\ud06c\ub97c \uac78\uc5b4 \ub450\ub294\uac8c \ud3b8\ud568.)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo systemctl daemon-reload\n$ sudo systemctl start smartMon<\/code><\/pre>\n\n\n\n<p>\uc744 \ud574\uc8fc\uba74 \ud574\ub2f9 \uc2a4\ud06c\ub9bd\ud2b8\uac00 \uc2e4\ud589\ub420 \uac83\uc774\uba70, \ub9ac\ubd93 \ud6c4\uc5d0\ub3c4 \uc790\ub3d9\uc73c\ub85c \uc2dc\uc791\ub420 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>3\ubc88\uc9f8 \uc904\uc740 \uc774 service\ub97c influxd\uac00 \uc2e4\ud589\ub41c \uc774\ud6c4\uc5d0 \uc2e4\ud589\ud558\uc790\ub294 \ub73b\uc778\ub370, DB\uc11c\ubc84 \uc811\uc18d\uc744 \ub85c\uceec\uc774 \uc544\ub2cc \uc678\ubd80\ub85c \ud55c\ub2e4\uba74 \ud544\uc694 \uc5c6\ub294 \ub77c\uc778\uc774\ubbc0\ub85c \uc9c0\uc6cc\ub3c4 \ubb34\ubc29\ud558\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Furthermore&#8230;<\/h3>\n\n\n\n<p>\uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c \ud638\uc2a4\ud2b8\ub124\uc784\uc744 \uc790\ub3d9\uc73c\ub85c \uc77d\uac70\ub098, \ub514\ubc14\uc774\uc2a4 \ub9ac\uc2a4\ud2b8\ub97c \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ud558\ub294 \uae30\ub2a5\ud5a5\uc0c1, \ud639\uc740 config \ud30c\uc77c\uc744 \ubd84\ub9ac\ud558\ub294 \uc791\uc5c5 \ub4f1\uc744 \uad6c\uc0c1\ud558\uae34 \ud588\ub294\ub370 \uadc0\ucc2e\uc544\uc11c \uadf8\ub0e5 \uc774\ub300\ub85c \uc4f0\ub294 \uc911\uc784.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2019. 9. 24. \uc5c5\ub370\uc774\ud2b8<\/h4>\n\n\n\n<p>\ud638\uc2a4\ud2b8\ub124\uc784\uc740 <code>HOSTNAME<\/code>\uc744 \uc4f0\uace0, \ub514\ubc14\uc774\uc2a4 \ub9ac\uc2a4\ud2b8\ub294 <code>ls \/dev\/sd?<\/code>\ub97c \uc368\uc11c \ud574\uacb0\ud588\uc74c.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\nHOSTNAME=`hostname`\nDEVICE=(`ls \/dev\/sd?`)<\/code><\/pre>\n\n\n\n<p>\uc704\uc758 <code>smartMon.sh<\/code> \uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c \ud574\ub2f9 \ubd80\ubd84\uc744 \uc704\uc640 \uac19\uc774 \uc218\uc815\ud558\uba74 \ub41c\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Motive \uc9c0\ub09c \uae00\uc5d0\uc11c smartd\uc640 smartctl\uc758 \uac04\ub2e8\ud55c \uae30\ub2a5\uc5d0 \ub300\ud574 \uc18c\uac1c\ud558\uc600\ub2e4. \ub098\uc758 \uad81\uadf9\uc801\uc778 \ubaa9\ud45c\ub294 \uc774 S.M.A.R.T. raw \uc815\ubcf4\ub97c \uc801\uc808\ud558\uac8c \uac00\uacf5\ud558\uace0, \ub298 \ud30c\uc545\ud558\uae30 \uc27d\ub3c4\ub85d \uc2e4\uc2dc\uac04 \ubaa8\ub2c8\ud130\ub9c1\uc744 \uad6c\ucd95\ud558\ub294 \uac83. \ud658\uacbd &#8211; \uc791\uc5c5 \ub178\ub4dc: \uadf8\ub0e5 \ubcf4\ud1b5 \uc11c\ubc84&#8211; OS: Ubuntu 18.04&#8211; Shell: Bash 4.4 Parsing data \uc544\ub798\uc640 \uac19\uc740 \ucee4\ub9e8\ub4dc\ub97c \uc785\ub825\ud558\uba74 \uad6c\uccb4\uc801\uc778 \ub4dc\ub77c\uc774\ube0c\uc758 \uc18d\uc131\uc744 \ucd9c\ub825\ud574 \uc900\ub2e4\ub294 \uac83\uc740 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[49,50,48,47,44,46,45,51,52],"class_list":["post-408","post","type-post","status-publish","format-standard","hentry","category-linux","tag-disk","tag-drive","tag-hard","tag-hdd","tag-smart","tag-smartctld","tag-smartd","tag-solid","tag-state"],"_links":{"self":[{"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=\/wp\/v2\/posts\/408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=408"}],"version-history":[{"count":37,"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=\/wp\/v2\/posts\/408\/revisions"}],"predecessor-version":[{"id":603,"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=\/wp\/v2\/posts\/408\/revisions\/603"}],"wp:attachment":[{"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hyandmj.asuscomm.com\/hblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}