그 동안 Vultr 가상 서버 호스팅을 이용하면서 주로 사용했던 명령어를 모아 보았습니다.
서버 운영 시 cPanel을 이용하지 않는 경우 대부분의 작업을 터미널에서 작업해야 하는데요. 이 경우 명령어를 알고 있지 않는다면 할 수 있는 것이 거의 없습니다.
그래서 주로 사용하는 명령어를 정리해서 개인적으로도 활용하고 혹 필요하신 분께 도움이 되길 바랍니다.

원래는 가상 서버 입문 방법에서 넣으려고 했던 내용인데 너무 길어져서 별도 포스팅으로 작성했습니다.
내용을 계속해서 보완할 생각입니다.

가상 서버를 운영하고픈 勇者에게 전하는 가상 서버 운영 입문 노하우 – Vultr 가상서버호스팅(VPS)를 중심으로

1. 데이타베이스 백업하기

데이타베이스 백업은 phpMyAdmin으로 접속해 데이타베이스 보내기 기능으로도 할 수 있지만 phpMyAdmin은 보안을 고려 시 좋은 선택이 아니라는 지적이 많으므로 터미널에서 SQL 명령어를 사용하도록 합니다.

DB 백업 및 복구

백업 명령은 mysqldump을 사용하고 복구는 mysql 명령을 사용합니다.
백업 명령에서 InnoDB라면 —opt —single-transaction 옵션 추가하도록 추천되고 있습니다. 업데이트 되고 있는 상태의 데이타베이스가 백업되는 것을 막고, 복원 시 안정성을 높일 수 있습니다.

mysqldump —opt —single-transaction -u [사용자] -p [DB 비밀번호] [DB 이름] > [백업받은 이름].sql

예를 들면 이런 것이죠.

mysqldump --opt --single-transaction -u root -p ******** wp > wp20171217.sql

복구 명령은 mysql을 사용하는데요. 아래와 같은 형식의 명령을 사용합니다.

mysql -u [사용자] -p [DB 비밀번호] [DB 이름] < [백업받은 이름].sql

예를 들어서

mysql -u root -p ******* wp < wp20171217.sql

DB 삭제하기

별로 쓰일 일은 많지 않겠지만 DB 삭제 명령입니다.

mysql -u [사용자] -p [DB 비밀번호] DROP DATABASE [DB 이름]

DB끼리 DB 테이블 복사하기

사이트를 운영하다보면 백업 후 다시 복구할 시 DB 전체를 통째로 바꿔치기 하는 경우도 있지만 백업받은 DB에서 일부 테이블만 복사해 오는 경우가 있습니다. 이 경우는 Inset Into Select From을 사용합니다.


INSERT INTO [복사 받을 DB이름].[DB 접두어].[테이블 이름] SELECT * FROM [원본 DB 이름].[DB 접두어]_[테이블 이름] ;

INSERT INTO wp.wp_postmeta  SELECT * FROM wpbackup.wp_postmeta ;
INSERT INTO wp.wp_posts SELECT * FROM wpbackup.wp_posts;
INSERT INTO wp.wp_termmeta  SELECT * FROM wpbackup.wp_termmeta ;
INSERT INTO wp.wp_terms  SELECT * FROM wpbackup.wp_terms ;
INSERT INTO wp.wp_term_relationships  SELECT * FROM wpbackup.wp_term_relationships;
INSERT INTO wp.wp_term_taxonomy   SELECT * FROM wpbackup.wp_term_taxonomy;
INSERT INTO wp.wp_analyticbridge_metrics SELECT * FROM wpbackup.wp_analyticbridge_metrics;
INSERT INTO wp.wp_analyticbridge_pages SELECT * FROM wpbackup.wp_analyticbridge_pages;
INSERT INTO wp.wp_et_social_stats  SELECT * FROM wpbackup.wp_et_social_stats;
INSERT INTO wp.wp_commentmeta  SELECT * FROM wpbackup.wp_commentmeta;
INSERT INTO wp.wp_comments  SELECT * FROM wpbackup.wp_comments;
INSERT INTO wp.wp_links SELECT * FROM wpbackup.wp_links;

2. 폴더 및 파일 관리 명령

리눅스에서 파일 이름은 256자까지 사용 가능, 확장자 의미 없으며 소문자와 대문자를 구분합니다. 즉 대, 소문자는 각기 다른 파일이 됩니다.

  • cd . : .은 현제 디렉토리 의미
  • cd .. : ..는 상위 디렉토리 의미, 득 상위 디렉토리로 이동
  • cd = cd ~ =cd / : 최상위 root로 이동
  • 폴더 만들기 : mkdir /home/itrend/
  • 폴더 복사하기 : cp -r 원본폴더/ 목적지폴더/
    cp -r /home/happist/wordpress/files /home/happist/files
    
  • 파일 또는 폴더 이동 : mv [옮기려는 폴더] [올기고 싶은 폴더]
    mv -r /home/happist/wordpress/files /home/happist/files
    mv -r /home/happist/wordpress/happistdb /home/happist/happistdb
    
  • 폴더 이름 변경 : mv [New 폳더 이름] [old 폴더 이름]
    mv happist wordpress
    
  • 여러개 파일이나 폴더 이름 변경 : rename ‘s/abc/def/‘ *.txt
    확장자가 txt인 파일에서 abc를 def로 변경

    rename 's/abc/def/' *.txt
    
  • 폴더 삭제 : rm -r [폴더명]
    rm -r /var/ngx_pagespeed_cache
    rm -rf /etc/letsencrypt/live/itrend.site-001
    rm /etc/letsencrypt/renewal/itrend.site-0001.conf
    
  • 특정 폴더 밑의 모든 파일 삭제 : rm -r [폴더명]/*
    /var/ngx_pagespeed_cache 폴더의 모든 cache를 지울 때

    rm -r /var/ngx_pagespeed_cache/*
    
  • 파일 list 확인 : ls -l
  • 압축하기 : tar -cvzf [압축된 파일 이름] [압축할 파일이나 폴더명]
    tar -cvzf wpbackup02.tar.gz wp.sql
    tar -zcvf databackup.tgz /home/happist/www/wp-content/uploads/2018/ 1>/dev/null 2>/dev/null
    
  • 압출 풀기 : tar -xvzf [압축 해제할 압축 아카이브 이름]
    tar -xvzf  wordpress-4.8.2-ko_KR.tar.gz 
    tar -xvzf wordpress.tgz
    tar -xvzf happistdb.tgz 
    tar -xvzf uploads.tgz 
    tar -xvzf files.tgz
    tar -xvzf plugins.tgz
    

3. 권한 변경 chmod

  • nginx가 컨트롤할 수 있는 권한
    chown -R www-data:www-data /home/happist
    
  • 파일 권한 설정
    chmod -R 755 /home/happist/
    chmod +x database.sh
    
  • sendmail삭제 : apt-get purge sendmail*

4. 웹서버 재가동 등

  • 각종 프로그램 재가동
    ~javascript
    service nginx restart
    service mysql restart
    service php7.1-fpm restart

service cron start or service cron restart # crontab 수정 후


- 시스템 메모리 상황 파익 : free -m

- 디바이스별 사용양 확인 : df -h

- mysqlcheck로 테이블 손상 복구 : 
~~~javascript
mysqlcheck -u [DB계정] -p[패스워드] --auto-repair --all-databases # 테이블 오류체크 및 자동 복구
mysqlcheck -u [DB계정] -p[패스워드] --optimize --all-databases # 테이블 최적화
  • MySQLTuner 사용 명령 ; perl mysqltuner.pl

5. Vultr에서 DNS 주소 알아내기

nslookup ns1.vultr.com
nslookup ns2vultr.com

6. 기타

  • NPS_VERSION=1.13.35.2-beta : 이는 명령어에서 반복적으로 나온 것을 지칭 시 사용
    NPS_VERSION=1.13.35.2-beta
    cd
    wget https://github.com/apache/incubator-pagespeed-ngx/archive/v${NPS_VERSION}.zip
    unzip v${NPS_VERSION}.zip
    nps_dir=$(find . -name "*pagespeed-ngx-${NPS_VERSION}" -type d)
    cd "$nps_dir"
    NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
    psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
    [ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
    wget ${psol_url}
    tar -xzvf $(basename ${psol_url})  # extracts to psol/
    
  • 강제 업데이트 명령 : apt-get update —allow-releaseinfo-change
  • 프로그램 삭제
    apt-get purge sendmail*  
    apt-get purge php7.1*
    
  • 현재 사용중이 php관련 패키지 모듈 리스트 파악
    dpkg -l | grep php | tee packages.txt
    

광고 – Vultr 25$ 프로모션

Vultr에 관심이 있다면 아래 프로모션으로 Vultr에 가입해 보세요.
물론 그전에 더 좋은 프로모션이 있는지 체크해 봐야 합니다.

Vultr의 좋은 점이 다양한 프로모션이 많아서 초기에 저렴하게 이용할 수 있다는 점이었죠. 최근에는 그런 좋은 조건들이 많이 사라진 것 같긴 합니다.

25$ 프로모션으로 Vultr 가입하기