{"id":5485,"date":"2022-08-19T17:45:11","date_gmt":"2022-08-19T08:45:11","guid":{"rendered":"\/blog\/?p=5485"},"modified":"2023-09-21T09:26:24","modified_gmt":"2023-09-21T00:26:24","slug":"5485","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=5485","title":{"rendered":"\ubc31\uc5c5 \uc0ac\uc774\ud2b8 \uad6c\ucd95 \uc2a4\ud06c\ub9bd\ud2b8"},"content":{"rendered":"\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n######################################################################\n#\n# https:\/\/hasu0707.duckdns.org\uc758 \ubc31\uc5c5 \uc0ac\uc774\ud2b8\ub97c \uad6c\ucd95\ud55c\ub2e4.\n#\n######################################################################\nCURRENT_DIR=`pwd -P`\nSITE_URL=\"hasu0707.duckdns.org\"\nTIMESTAMP_STR1=`date \"+%Y%m%d-*_backup_www-${SITE_URL}.tar.gz\"`\nTIMESTAMP_STR2=`date \"+%Y%m%d-*_backup_db-${SITE_URL}.sql.gz\"`\nTMP_DIR=\"\/tmp_work\"\nWEBDAV_ID=\"armbian\"\nWEBDAV_PW='myPass@12'\nWEBDAV_URL=\"https:\/\/${SITE_URL}:5005\/backup\/${SITE_URL}\"\nDB_ROOTPW='myPass@12'\nDB_NAME=\"hasu0707\"\nDB_USER=\"hasu0707\"\nDB_USERPW='myPass@12'\n\nget_system_ip_addr() {\n  echo \"######################################################################\"\n  echo \"#\"\n  echo \"# IP\uc8fc\uc18c \uc54c\uc544\ub0b4\uae30\"\n  echo \"#\"\n  echo \"######################################################################\"\n  SYSTEM_IP_ADDR=$(hostname -I | awk '{print $1}')\n  if [ -z ${SYSTEM_IP_ADDR} ]\n  then\n    echo \"ERROR: Unknown IP Address.\"\n    exit 1\n  fi\n  echo \"IP Address: ${SYSTEM_IP_ADDR}\"\n}\n\nmysql_root_login_test() {\n  echo \"######################################################################\"\n  echo \"#\"\n  echo \"# mysql root \uacc4\uc815 \ub85c\uadf8\uc778 \ud14c\uc2a4\ud2b8\"\n  echo \"#\"\n  echo \"######################################################################\"\n  mysql -uroot -p${DB_ROOTPW} -e \"exit\"\n  if [ $? -ne 0 ];\n  then\n    echo \"mysql root \ube44\ubc00\ubc88\ud638\uac00 \uc774 \uc2a4\ud06c\ub9bd\ud2b8\uc640 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc544\ub798\uc640 \uac19\uc740 \ubc29\ubc95\uc73c\ub85c \ubcc0\uacbd\ud574 \uc8fc\uc138\uc694.\"\n    echo \"ex) mysqladmin -u root -p password 'P@ss1234'\"\n    exit 1\n  fi\n}\n\ndownload_backup() {\n  echo \"######################################################################\"\n  echo \"#\"\n  echo \"# \ub370\uc774\ud130 \ub2e4\uc6b4\ub85c\ub4dc\"\n  echo \"#\"\n  echo \"######################################################################\"\n\n  # \uc784\uc2dc \ub514\ub809\ud1a0\ub9ac \ucd08\uae30\ud654\n  rm -rf ${TMP_DIR}\n  mkdir ${TMP_DIR}\n\n  wget -P ${TMP_DIR} --no-check-certificate --user ${WEBDAV_ID} --password ${WEBDAV_PW} -r -A \"${TIMESTAMP_STR1}\" \"${WEBDAV_URL}\"\n  if [ $? -ne 0 ];\n  then\n    echo \"Failed to download-www\"\n    exit 1\n  fi\n\n  wget -P ${TMP_DIR} --no-check-certificate --user ${WEBDAV_ID} --password ${WEBDAV_PW} -r -A \"${TIMESTAMP_STR2}\" \"${WEBDAV_URL}\"\n  if [ $? -ne 0 ];\n  then\n    echo \"Failed to download-db\"\n    exit 1\n  fi\n\n  mv ${TMP_DIR}\/${SITE_URL}:5005\/backup\/${SITE_URL}\/*.gz ${TMP_DIR}\n  rm -rf ${TMP_DIR}\/${SITE_URL}:5005\n  sync\n}\n\nuncompress_backup() {\n  echo \"######################################################################\"\n  echo \"#\"\n  echo \"# \uc555\ucd95 \ud574\uc81c\"\n  echo \"#\"\n  echo \"######################################################################\"\n\n  mkdir ${TMP_DIR}\/1\n  mkdir ${TMP_DIR}\/2\n  tar -C ${TMP_DIR}\/1 -xzf ${TMP_DIR}\/*.tar.gz\n  gzip -d ${TMP_DIR}\/*.sql.gz\n  mv ${TMP_DIR}\/*.sql ${TMP_DIR}\/2\n  rm -f ${TMP_DIR}\/*.tar.gz\n}\n\ninstall_www() {\n  echo \"######################################################################\"\n  echo \"#\"\n  echo \"# \/var\/www \uc124\uce58\"\n  echo \"#\"\n  echo \"######################################################################\"\n\n  rm -rf \/var\/www\n  mv ${TMP_DIR}\/1\/var\/www \/var\n  chown -R armbian:armbian \/var\/www\n}\n\nchange_hostname() {\n  echo \"######################################################################\"\n  echo \"#\"\n  echo \"# \ud638\uc2a4\ud2b8 \uba85 \ubcc0\uacbd\"\n  echo \"#\"\n  echo \"######################################################################\"\n  sed -i \"s\/${SITE_URL}\/${SYSTEM_IP_ADDR}\/g\" \/var\/www\/index.html\n}\n\ninstall_db() {\n  echo \"######################################################################\"\n  echo \"#\"\n  echo \"# DB \uc124\uce58\"\n  echo \"#\"\n  echo \"######################################################################\"\n\n  # \uae30\uc874 DB \uc0ad\uc81c\n  echo \"DROP DATABASE IF EXISTS ${DB_NAME};\" > \/tmp\/tmp.sql\n  echo \"DROP USER IF EXISTS '${DB_USER}'@'localhost';\" >> \/tmp\/tmp.sql\n  echo \"DROP USER IF EXISTS '${DB_USER}'@'%'\" >> \/tmp\/tmp.sql\n  mysql -uroot -p${DB_ROOTPW} &lt; \/tmp\/tmp.sql\n\n  # DB \uc0dd\uc131\n  echo \"CREATE DATABASE ${DB_NAME} CHARACTER SET utf8mb4;\" > \/tmp\/tmp.sql\n  echo \"GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_USERPW}';\" >> \/tmp\/tmp.sql\n  mysql -uroot -p${DB_ROOTPW} &lt; \/tmp\/tmp.sql\n\n  # DB dump \ubc00\uc5b4\ub123\uae30\n  mysql -uroot -p${DB_ROOTPW} ${DB_NAME} &lt; ${TMP_DIR}\/2\/*.sql\n  rm -f \/tmp\/tmp.sql\n}\n\nclean_data() {\n  echo \"######################################################################\"\n  echo \"#\"\n  echo \"# \uc784\uc2dc\ud30c\uc77c \uc0ad\uc81c\"\n  echo \"#\"\n  echo \"######################################################################\"\n  rm -rf ${TMP_DIR}\n}\n\nget_system_ip_addr\nmysql_root_login_test\ndownload_backup\nuncompress_backup\ninstall_www\nchange_hostname\ninstall_db\nclean_data<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[22,39],"tags":[],"class_list":["post-5485","post","type-post","status-publish","format-standard","hentry","category-development_unix","category-os_linux_unix_macos"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5485"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5485\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}