리눅스 VPS 스왑 용량 변경하기



Swap 이 파티션 타입이 아닌 파일 타입인 경우에 용량을 변경하는 방법입니다.


줄일 수도 있고 늘일 수도 있으며 스왑을 해제할 수도 있습니다.



▶ 스왑 사이즈 확인


[root@vps swap]# free

              total        used        free      shared  buff/cache   available

Mem:         500436      102640        7700        4492      390096      369188

Swap:       2621432           0     2621432



▶ 스왑 해제


[root@vps swap]# swapoff -a

[root@vps swap]# free

              total        used        free      shared  buff/cache   available

Mem:         500436      100832        9484        4492      390120      371004

Swap:             0           0           0


swapoff -a 대신에 파일을 지정해서 제거하는 방법도 있습니다.


# swapoff /var/spool/swap/swapfile


스왑이 사용중일 때는 스왑이 해제가 안됩니다. 이런 경우엔 아래의 스왑 파일 추가를 먼저 한 이후에 해제를 하면 됩니다.



▶ 스왑 파일 용량 변경 ( swapoff 로 스왑을 해제하고 진행하여야 함 )


[root@vps swap]# dd if=/dev/zero of=/var/spool/swap/swapfile bs=1M count=512

512+0 records in

512+0 records out

536870912 bytes (537 MB) copied, 1.09551 s, 490 MB/s


[root@vps swap]# mkswap /var/spool/swap/swapfile

Setting up swapspace version 1, size = 524284 KiB

no label, UUID=06a694be-2017-4ed1-a630-0d7bf183358c


[root@vps swap]# swapon /var/spool/swap/swapfile


[root@vps swap]# swapon -s

Filename                                Type            Size    Used    Priority

/var/spool/swap/swapfile                file    524284  0       -1


512MB 로 변경 되었습니다.



▶ 스왑 파일 추가 ( 기존 스왑에서 더 추가하는 방법입니다. )


[root@vps swap]# dd if=/dev/zero of=/var/spool/swap/swapfile2 bs=1M count=512

512+0 records in

512+0 records out

536870912 bytes (537 MB) copied, 1.0872 s, 494 MB/s


[root@vps ~]# chmod 600 /var/spool/swap/swapfile2


[root@vps swap]# mkswap /var/spool/swap/swapfile2

Setting up swapspace version 1, size = 524284 KiB

no label, UUID=b7909dcc-03be-483c-8db6-7b7ba92e044a


[root@vps swap]# swapon /var/spool/swap/swapfile2


[root@vps swap]# swapon -s

Filename                                Type            Size    Used    Priority

/var/spool/swap/swapfile                file    524284  0       -1

/var/spool/swap/swapfile2               file    524284  0       -2


[root@vps swap]# free

              total        used        free      shared  buff/cache   available

Mem:         500436      100972        6312        4464      393152      370884

Swap:       1048568           0     1048568


스왑파일이 더 추가 되었습니다.


스왑이 추가가 된 경우에 재 부팅시에도 적용되게 하려면 /etc/fstab 에 아래 내용을 추가해주어야 합니다.



▶ /etc/fstab 편집


/var/spool/swap/swapfile2   none    swap    defaults    0 0


이제는 재부팅 되더라도 스왑이 적용이 되어 있을 겁니다.



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 6.x IPTABLES 방화벽 설정



현재 리눅스 서버에서 필요한 포트만 열어두고 사용하지 않는 포트는 차단하여 봅시다.


먼저 서비스 중인 LISTEN 포트가 무엇이 있는지 체크가 필요합니다.


# netstat -ant | grep LISTEN

tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN

tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN

tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN

tcp        0      0 :::80                       :::*                        LISTEN

tcp        0      0 ::1:25                      :::*                        LISTEN

tcp        0      0 :::443                      :::*                        LISTEN


21 : FTP

22 : SSH

25 : SMTP

53, 953 : DNS

80 : HTTP

443 : HTTPS

3306 : MYSQL


이 정도로 서비스 중입니다. 서버 마다 상황이 다르겠지만 위 포트를 예로 들어 진행하겠습니다.


위의 포트만 열어주고 나머지는 차단해보도록 합시다.


# vi /etc/sysconfig/iptables 로 편집


-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p icmp -j DROP

-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT

-A INPUT -p udp -m udp --dport 53 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

-A INPUT -p tcp -m tcp -j DROP


localhost 인 127.0.0.1 아이피는 규칙에 넣지 않아도 됩니다. 넣어도 적용이 되지 않습니다.


제일 마지막 줄이 모든 포트를 차단하는 규칙입니다.


위 쪽에서 서비스 포트를 미리 정의 하여야 합니다.


깜빡하고 안 적어 준 다음 service iptables restart 를 하면 안되겠죠?


22번 포트가 열려 있다면 ssh 로 접속해서 수정이 가능하겠지만 22번 포트가 누락되었다면 콘솔로 접속하는 방법 밖에 없습니다.


이점 유의 하시기 바랍니다.



그리고 아래는 iptables 명령어로 규칙을 추가하는 방법입니다.


iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p icmp -j DROP

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -j ACCEPT

iptables -A INPUT -p udp --dport 53 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

iptables -A INPUT -p tcp --dport 0:65535 -j DROP

service iptables save


가급적 콘솔에서 작업하세요~



멀티포트로 설정하는 방법은 아래와 같습니다.


iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

iptables -A INPUT -p tcp --dport 8000:8080 -j ACCEPT


위와 같이 추가할 수 있습니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

리눅스 파일시간 변경방법



파일 시간을 변경하는 방법입니다.


파일의 시간정보까지 복사하는 명령은 cp -p 옵션을 사용하면 됩니다.



▶ 특정 시간으로 변경 ( touch -t 년월일시분 파일 )


[root@conoha test]# ls -l

total 0

-rw-r--r-- 1 root root 0 Jun 15 14:39 1.txt

-rw-r--r-- 1 root root 0 Jun 15 14:41 2.txt


[root@conoha test]# touch -t 201706010102 2.txt

[root@conoha test]# ls -l

total 0

-rw-r--r-- 1 root root 0 Jun 15 14:39 1.txt

-rw-r--r-- 1 root root 0 Jun  1 01:02 2.txt


지정한 시간으로 파일의 시간이 변경되었습니다.



▶ 특정 파일의 시간과 동일하게 변경 ( touch -r 원본파일 변경할파일 )


[root@conoha test]# touch -r 1.txt 2.txt

[root@conoha test]# ls -l

total 0

-rw-r--r-- 1 root root 0 Jun 15 14:39 1.txt

-rw-r--r-- 1 root root 0 Jun 15 14:39 2.txt



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

쉘스크립트 하루전 일주일전 한달전 알아내기



백업시 자주 이용되는게 얼마전 날짜의 데이터를 지우는 것일 겁니다.


지우지 않는다면 계속 누적되어 하드디스크가 다 차고 말겠지요~



▶ 7일전 날짜


#!/bin/sh


DATE=`date +%Y%m%d --date="7 days ago"`


하루전이라면 1 days ago 입니다.



▶ 한달전 날짜


#!/bin/sh


DATE=`date +%Y%m%d --date="1 months ago"`


30일전은 1 months ago 대신에 30 days ago 를 사용하면 됩니다.



▶ 1년후 날짜


#!/bin/sh


DATE=`date +%Y%m%d --date="1 years"`


여기서 구한 날짜를 이용해서 해당되는 데이터를 삭제하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x yum update Error: rpmdb open failed



얼마전 디스크 용량이 꽉 차더니 아래처럼 yum update 시 에러가 나는군요~


[root@conoha ~]# yum update

error: db5 error(11) from dbenv->open: Resource temporarily unavailable

error: cannot open Packages index using db5 - Resource temporarily unavailable (11)

error: cannot open Packages database in /var/lib/rpm

CRITICAL:yum.main:


Error: rpmdb open failed


이럴때는 아래처럼 하면 해결이 됩니다.


[root@conoha /]# rpm --rebuilddb

[root@conoha /]# yum update

Loaded plugins: fastestmirror, langpacks

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

base                                                     | 3.6 kB     00:00

epel/x86_64/metalink                                     | 3.8 kB     00:00

epel                                                     | 4.3 kB     00:00

extras                                                   | 3.4 kB     00:00

updates                                                  | 3.4 kB     00:00

(1/4): epel/x86_64/updateinfo                              | 807 kB   00:11

(2/4): extras/7/x86_64/primary_db                          | 167 kB   00:07

(3/4): epel/x86_64/primary_db                              | 4.7 MB   00:29

(4/4): updates/7/x86_64/primary_db                         | 5.6 MB   02:36

Determining fastest mirrors

 * base: www.ftp.ne.jp

 * epel: ftp.riken.jp

 * extras: www.ftp.ne.jp

 * updates: www.ftp.ne.jp

Resolving Dependencies


이제 잘 되는군요~


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

htaccess 로그인은 보안서버로 리디렉션



호출 자체를 https 로 열리도록 수정하면 되겠지만 기존 운영하는 소스를 건드리지 않고 하려면 .htaccess 파일에서 핸들링 하는게 좋을 것 같습니다.


443포트가 아닌 login.html 이 호출되면 https 로 redirect 시켜주면 됩니다.


RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]

RewriteCond %{SERVER_PORT} !^443$

RewriteCond %{REQUEST_URI} ^/login.html$ [NC]

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


로그인 이후엔 다시 80포트로 되돌리려면 위 코드를 적절하게 수정해 주면 됩니다.


RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]

RewriteCond %{SERVER_PORT} !^80$

RewriteCond %{REQUEST_URI} ^/index.html$ [NC]

RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


계속해서 ssl 보안 상태로 브라우징해도 괜찮다면 두번째 부분을 필요가 없을 것 입니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x rc.local 이 실행이 안되는 문제



"systemctl enable 서비스명" 이 시작프로그램 등록인데 이게 먹히지 않는 스크립트파일의 경우는 rc.local 에 등록하여 실행시킬 수 있습니다.


그런데 7점대 버전에서는 리눅스 시스템이 부팅될 때 실행이 되어야 할 rc.local 이 실행되지 않네요~


이유가 퍼미션이 644 여서 그런거네요~


[root@conoha ~]# ls -l /etc/rc.d/rc.local

-rw-r--r-- 1 root root 498 Jun  2 08:56 /etc/rc.d/rc.local


실행되도록 권한을 바꿔주면 됩니다.


# chmod 755 /etc/rc.d/rc.local


또는


# chmod +x /etc/rc.d/rc.local


이제 reboot 을 해서 실행되는지 확인하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

아파치 AH00548 NameVirtualHost has no offect



CentOS 7.x Apache 2.4.x 버전에서 apachectl configtest 로 아래와 같은 메시지가 뜨면


AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf/www.example.com.conf:23


NameVirtualHost *:443 부분을 찾아서 주석처리 해주면 됩니다.



아파치 2.2 버전대에서는 멀티로 도메인 여러개를 VirtualHost 설정을 하면 아래와 같은 메시지가 뜹니다.


VirtualHost www.example.com:443 overlaps with VirtualHost www2.example.com:443, the first has precedence, perhaps you need a NameVirtualHost directive


2.2.x 버전에서는 NameVirtualHost 아이피주소:443 을 넣어주어야 이상이 없네요~


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x 아파치 한글이 깨지는 문제



html 에서 메타헤더에 euc-kr 캐릭터셋으로 설정했는데도 한글이 깨져서 보인다면 httpd.conf 파일을 확인해보세요~


<meta http-equiv="Content-Type" content="text/html;charset=euc-kr" />


utf-8 로는 한글이 안깨지는데 euc-kr 의 경우 위와 같이 되어 있는데도 브라우저에서 한글이 깨져서 보인다면 httpd.conf 파일을 수정해 주세요.


#AddDefaultCharset UTF-8


위 부분을 찾아서 주석 처리 후 저장합니다.


그리고 아파치 재시작


# systemctl restart httpd


6.x 버전이라면 service httpd restart



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

네트워크 모니터링 유틸 iftop



vnstat 은 네트워크 전송량을 모니터링 해주지만 자세한 내용까지는 알 수가 없습니다.


iftop 이란 유틸이 있는데 이건 상세하게 볼 수가 있습니다.


설치는 yum install iftop 하시면 됩니다.



왼쪽은 Source, 오른쪽이 Destination 입니다.




h 를 누르면 도움말을 볼 수 있습니다.


n : IP를 DNS 정보로 표시할 지 여부를 선택

s : Source IP 를 숨김/표시

d : Destination IP 를 숨김/표시

t : inbound, outbound, 모두 표시 토글


등등 여러 기능이 있습니다.



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,