반응형
[리눅스 명령어]CentOS : man find
 
1. 용도 및 목적
파일 탐색 용도

2. 자주 쓰는 옵션
-찾기
#find / -name profile

3. 활용 방법
-찾기(파일 이름 길거나, 파일이 너무 많아 조회가 힘들때 ls로 확인 안될 때)
#find . -name "*" -exec ls -al {} \;

-디렉토리 내에 개수 확인
#find . -xdev -type d -exec /bin/echo -n "{} : " \; -exec sh -c "ls {} | wc -l" \;

-삭제 (rm 으로 지우기 어려울 정도로 많은 양일때 : rm으로 통으로 지우면 시스템 부하로 인해 멈춤현상 발생, 긴 파일명으로 삭제 불가능할 시)
#find . -name "test*.aud" -exec rm {} \;

-other 권한에 write권한이 있는 파일 출력(type f : 파일, d: 디렉토리)
#find . -perm -2 -type f -ls

-/home/test 디렉토리 안의 testxx 로 생성되는 파일을 40일 이전 수정(생성)파일 삭제(40일 분량만 보유)
#find /home/tools/ -name "test*" -mtime +40 -exec rm {} \;

-이름과 파일 내용 찾기
find . -name "*.repo" -print -exec cat {}  \;

-잘못 생성된 디렉토리 및 파일 명을 일괄 변경할때 
find . -name "20220908*" |xargs -I{} sh -c 'mv -v $0 ${0/_*/}' {};
`./20220908_test1' -> `./20220908'
`./20220908_test2' -> `./20220908'
반응형
반응형
[리눅스 명령어]CentOS : man tcpdump
 

1. 용도 및 목적
네트워크 트래픽 덤프 생성(minimal 설치 시 포함 안됨 yum 설치 또는 단일 패키지이니 다운 받아 설치)

2. 자주 쓰는 옵션
-eth0 패킷을 출력
#tcpdump -i eth0

-eth0 패킷을 test.pcap에 저장
#tcpdump -i eth0 -w test.pcap

-패킷 캡쳐시 손실또는 잘릴 경우 -s 옵션으로 조정(제한된 스냅샷으로 패킷이 잘릴 경우 또는 tcpdump 호환을 위해서도 사용)
#tcpdump -i eth0 -s 0 -w test.pcap

-vip 의 sip 패킷 확인
#tcpdump -i bond0:5 host 192.168.35.10 -nnvX -s 400

-HTTP Request, Response 모든 트래픽 필터링
tcpdump -A -s 0 'tcp port 8443 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -i eth0

HTTP GET 필터링
tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' -i eth0

HTTP POST 필터링
tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)' -i eth0 

3. 활용 방법
-설치
#yum install tcpdump

-eth0의 192.168.35.11의 호스트의 TCP 22번 포트만 캡쳐하여 test.pcap 파일로 저장
#tcpdump -i eth0 -w test.pcap tcp port 22 and host 192.168.35.11

-eth0의 192.168.35.11의 호스트의 UDP 9999번 포트만 캡쳐
#tcpdump -i eth0 udp port 9999 and host 192.168.35.11

-상세히 출력 -vv
#tcpdump -vv -i eth0

반응형
반응형

[리눅스 명령어]CentOS : man iptables

1. 용도 및 목적
IPv4 패킷 필터링 및 NAT를위한 관리 도구(service 가 살아있을때 iptables 적용하면 바로 적용된다. 적용이 완료 되면 필히 service iptables save 진행 할 것)

2. 자주 쓰는 옵션
-참고
적용 시 에러가 없었는데 안되는 거 같다면 우선 순위 부터 확인
-iptables 확인(우선순위는 위에서부터)
#iptables -nL

-대역 드롭(s sport 출발지IP, d - dport 목적지IP)
#iptables -A INPUT -p tcp -s 192.168.35.0/24 -d 192.168.35.11 --dport 8443 -j DROP

-대역 드롭 삭제
#iptables -D INPUT -p tcp -s 192.168.35.0/24 -d 192.168.35.11 --dport 8443 -j DROP

-접근 드롭
#iptables -A INPUT -p tcp -s 192.168.35.11 --dport 22 -j DROP

-접근 드롭 삭제
#iptables -D INPUT -p tcp -s 192.168.35.11 --dport 22 -j DROP

-접근 허용
#iptables -A INPUT -p tcp -s 192.168.35.11 --dport 22 -j ACCEPT

-접근 허용 삭제
#iptables -D INPUT -p tcp -s 192.168.35.11 --dport 22 -j ACCEPT

-특정 대역 포트 범위 허용
#iptables -A INPUT -s 192.168.35.0/24 -p tcp --dport 10000:65535 -j ACCEPT

-특정 대역 포트 범위 삭제
#iptables -D INPUT -s 192.168.35.0/24 -p tcp --dport 10000:65535 -j ACCEPT

-udp 접근 드롭
#iptables -A INPUT -p udp -s 192.168.35.11 --dport 5060 -j DROP

-udp 접근 드롭 삭제
#iptables -D INPUT -p udp -s 192.168.35.11 --dport 5060 -j DROP

-ICMP 차단
#iptables -A INPUT -p icmp -s 192.168.35.11 -j DROP

-라인 별 조회
#iptables -L --line-numbers

-특정 라인 추가(iptables -nL 로 확인 후 위부터 1)
#iptables -I INPUT 1 -p udp -s 192.168.35.11 --dport 5060 -j DROP

-특정 라인 삭제(iptables -nL 로 확인 후 위부터 1)
#iptables -D INPUT 1

-저장 안하고 service iptables restart 또는 서버 재기동하면 초기화 됨
#service iptables save

3. 활용 방법
-제어 옵션
차단 : DROP(버림), REJECT(거절)
허용 : ACCEPT(허용)
-p 프로토콜 옵션
 all, tcp, udp, icmp ~
-iptables 데몬 제어
#service iptables start
#service iptables status
#service iptables stop

-iptables 자동 실행(runlevel 3,4,5 에서 on)
#chkconfig --level 345 iptables on
chkconfig iptables --list
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

-기본 설정
vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

 

반응형
반응형

XenServer - VM OS install issue"mounting /tmp as tmpfs done" Hang

 

증상 : 

특정 redhat or centos  VM -> Other install media 로 인스톨 시

부팅 중 mounting /tmp as tmpfs done   이 후 진행 안된다면

 

해결 :

XenServer SSH 접속하여 하기 내용으로 진행

부팅 안되는 VM UUID 확인

#xe vm-list

조회한 UUID 로 하기 처럼 명령어 실행

#xe vm-param-set uuid=3fbdd358-c0d1-a71d-035b-1548b461cdeb platform:viridian=false

이 후 OS install 진행

 

반응형
반응형

XenServer VM 추가 삭제

 

작업 환경 : XenCenter, Putty, WinScp

 

1.xenserver-test 우클릭 -> New VM 선택

2.Other install media 선택 -> Next

3.VM NAME 입력 -> Next

4.Install ISO 선택 -> Next

5.VM 서버선택 -> Next

6.CPU, Memory 설정 -> Next

7.VM DISK 설정->Add

8.VM DISK 설정(Name, Size) -> Add

9.Next

10.사용할 Network 설정 (Network 0 은 xenserver관리 포트)

11.VM Network 이중화를 위해 1, 2 남기고 삭제

12.Create Now

13.VM 생성 완료

14.VM 삭제 -> CentOS6.9 TEST 우클릭 ->Delete VM 선택

15.사용한 DISK도 선택-> Delete

16.VM 삭제 완료

 

반응형
반응형

XenServer ISO 추가 삭제

 

작업 환경 : XenCenter, Putty, WinScp

 

1.XenServer ISO 추가전 상태

 

 

2.ISO 추가

XenServer ssh 접속 하여 경로 생성

#mkdir -p /home/isos/centos6.9

scp 로 /home/isos/centos6.9 에 centos6.9 ISO image 업로드

저장소에 ISO 생성

#xe sr-create name-label=centos6.9 type=iso device-config:location=/home/isos/centos6.9 device-config-legacy_mode=true content-type=iso

 

3.ISO 삭제

조회

#xe sr-list name-label=centos6.9

#xe pbd-list sr-uuid=243f3693-22e1-2939-716b-00c60525b327

uuid ( RO)                  : 668eb660-ce09-d67c-e0bc-098ad2817250 #<UUID of PBD>

             host-uuid ( RO): 82efa711-e510-4f25-9283-3335194ee36d

               sr-uuid ( RO): 243f3693-22e1-2939-716b-00c60525b327   #<UUID of SR>

         device-config (MRO): location: /home/isos/centos6.9; legacy_mode: true

    currently-attached ( RO): true

제거

xe pbd-unplug uuid=<UUID of PBD>

xe sr-forget uuid=<UUID of SR>

 

# xe pbd-unplug uuid=668eb660-ce09-d67c-e0bc-098ad2817250

# xe sr-forget uuid=243f3693-22e1-2939-716b-00c60525b327

 

반응형
반응형

XenCenter (Citrix Hypervisor) 설치 및 XenServer 연결 가이드

 

설치 환경 

LG 그램

 

설치 파일(다운로드는 https://www.citrix.co.kr/downloads/ )

XenServer-7.5.0-XenCenter

 

1.설치파일 실행

2.Next

3.설치위치및 사용 유저 확인->Next

4.Install->진행 중 권한 요청 확인

5.설치 완료

6.Xencenter 실행

7.Main-> Add New Server 

8.설치한 xenserver 정보(IP,ID/PW) 입력 -> Add (진행 중 보안 확인->Accept)

9.Xenserver-Xencenter 연결 완료

 

반응형
반응형

XenServer (Citrix Hypervisor) 설치 가이드

 

설치 환경 

HP ProLiant DL380p Gen8

Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz * 2

Process 1 : 8GB + Process 2 : 6GB

DISK : SAS 300GB * 2 (Raid 0)

Network : 서버의 NIC 2port 만사용 ( 1: 관리, 2: 서비스)

 

설치 파일(평가판 다운로드는 https://www.citrix.co.kr/downloads/ )

XenServer-7.5.0-install-cd

 

1.DVD 및 ISO 삽입 후 부팅-> boot : Enter 입력

2.사용할 키맵 선택-> [qwerty] us 선택->Ok 

3.데이터 지워지니 백업하라는 경고 및 진행 확인 -> Ok

4.라이센스 동의-> Accept EULA 

5.기존에 설치 되어있는 버전이 있을때만 나오는 화면 -> Perform clean installation->Ok

6.DISK 선택 -> Ok

7.Local media 선택 -> Ok

8.Skip verification -> Ok

9.root 패스워드 입력-> Ok

10.관리서버 포트 지정->Ok  (관리서버용 포트는 서비스용도로 사용불가)

11.네트워크 세팅 IP입력 ->Ok

12.Hostname 및 DNS 입력 -> Ok

13.Time Zone -> Asia ->Ok

14.Seoul ->Ok

15.시간 NTP 설정 ->Ok

16.보라넷 NTP IP 설정(203.248.240.103) ->Ok 

17.Install XenServer

18.Install 진행중

19.추가 팩 설치->No

20.설치진행

21.설치완료->Ok

22.재기동 완료

 

반응형
반응형

[리눅스 쉘 스크립트]CentOS : Network Monitoring

 

1. 용도 및 목적

별도 프로그램 없이 간단하게 네트워크 사용량 보기 위한 쉘(가상머신 또는 bonding 같은 가상 디바이스에서는 인터페이스 스피드를 못받아오며 추가 입력 필요)

 

2. 환경 : CentOS 6.9 64bit, /bin/bash

 

3. 쉘 스크립트

 

#vi networkmonitor.sh

----------------------------------------------

#!/bin/bash

 

######################################

#

#                    Network Monitoring

#                                                       by Ru

######################################

 

NODE=`hostname`

echo '------interfaces with status UP------'

#상태가 up인 네트워크 인터페이스 출력

ip link show |grep "state UP" |cut -d ":" -f2 |grep -v bond*

echo '---------------------------------------'

echo -n 'Choose from interfaces with status UP! : '

#상태가 up인 네트워크 중 사용률 보고 싶은 인터페이스 입력

read NIC

 

#NICSpeed=`ethtool $NIC |grep Speed |awk '{print $2}'`

NICSpeed=`cat /sys/class/net/$NIC/speed `

#NIC Speed 가 수집 안될 경 우 수동 입력 숫자만

echo $NICSpeed |grep 0 && echo "NICSpeed loading Success" || echo -n "Loading $NIC information failed - NICSpeed Enter(100/1000/10000)Mbps : " ;read NICSpeed

#NICSpeedSet=`ethtool $NIC |grep Speed |awk '{print $2}' |cut -d"M" -f1 |cut -b2-5`

#NICSpeedSet=`cat /sys/class/net/$NIC/speed |cut -b2-5`

NICSpeedSet=`echo $NICSpeed |cut -b2-5`

 

while true

do

#초단위 

    DATE=`date +%Y%m%d%H%M%S`

#RXTX byte 1차 수집

    RX1=`cat /sys/class/net/$NIC/statistics/rx_bytes`

    TX1=`cat /sys/class/net/$NIC/statistics/tx_bytes`

 

    sleep 1

#RXTX byte 2차 수집

    RX2=`cat /sys/class/net/$NIC/statistics/rx_bytes`

    TX2=`cat /sys/class/net/$NIC/statistics/tx_bytes`

#RXTX error 수집

     RXerror=`cat /sys/class/net/$NIC/statistics/rx_errors`

     TXerror=`cat /sys/class/net/$NIC/statistics/tx_errors`

#RXTX drop 수집

     RXdrop=`cat /sys/class/net/$NIC/statistics/rx_dropped`

     TXdrop=`cat /sys/class/net/$NIC/statistics/tx_dropped`

#RXTX overrun collision 수집

     RXover=`cat /sys/class/net/$NIC/statistics/rx_over_errors`

     Collisions=`cat /sys/class/net/$NIC/statistics/collisions`

#RXTX byte 1초간 계산

    TX_BYTE=`expr $TX2 - $TX1`

    RX_BYTE=`expr $RX2 - $RX1`

#RXTX byte M단위 변경 20190725

    TX_MBYTE=`expr $TX_BYTE / 1000000`

    RX_MBYTE=`expr $RX_BYTE / 1000000`

#RXTX byte 를 bit 로 변환

    TX_BIT=`expr $TX_BYTE \* 8`

    RX_BIT=`expr $RX_BYTE \* 8`

#RXTX bit M단위 변경 20190725

    TX_MBIT=`expr $TX_BIT / 1000000`

    RX_MBIT=`expr $RX_BIT / 1000000`

#RXTX bit 합

#RXTX_BIT=`expr $TX_BIT + $RX_BIT`

#RXTX bit 합을 NIC MAX bps 로 나눔

#RXTX_Percent=`expr $RXTX_BIT / 10000$NICSpeedSet`

#RXTX bit 분리 Percent NIC MAX bps 20190725

    RX_Percent=`expr $RX_BIT / 10000$NICSpeedSet`

    TX_Percent=`expr $TX_BIT / 10000$NICSpeedSet`

 

clear

#아래는 원하는 자료 별로 출력 배치

    echo "################################################################"

    echo "####       $NODE Server DATE : $DATE"

    echo "####       Network Monitoring"

    echo "####                                                by Ru "

    echo "################################################################"

    echo -e "Byte per second\t [$NIC] TX: $TX_MBYTE MB/s\tRX: $RX_MBYTE MB/s"

    echo -e "bit per second\t [$NIC] TX: $TX_MBIT Mb/s\tRX: $RX_MBIT Mb/s"

    echo -e "NIC MAX Speed\t [$NIC] $NICSpeed Mbps"

#   echo -e "Network Trrafic\t [$NIC] $RXTX_BIT bps\tUsage:$RXTX_Percent%"

    echo -e "Network Trrafic RX\t [$NIC] $RX_BIT bps\tUsage:$RX_Percent%"

    echo -e "Network Trrafic TX\t [$NIC] $TX_BIT bps\tUsage:$TX_Percent%"

 

 

    if [ $TX_Percent -le 5 ];then

    echo -e "TX Progres bar   \t |#-------------------|"

    elif [ $TX_Percent -le 10 ];then

    echo -e "TX Progres bar   \t |##------------------|"

    elif [ $TX_Percent -le 15 ];then

    echo -e "TX Progres bar   \t |###-----------------|"

    elif [ $TX_Percent -le 20 ];then

    echo -e "TX Progres bar   \t |####----------------|"

    elif [ $TX_Percent -le 25 ];then

    echo -e "TX Progres bar   \t |#####---------------|"

    elif [ $TX_Percent -le 30 ];then

    echo -e "TX Progres bar   \t |######--------------|"

    elif [ $TX_Percent -le 35 ];then

    echo -e "TX Progres bar   \t |#######-------------|"

    elif [ $TX_Percent -le 40 ];then

    echo -e "TX Progres bar   \t |########------------|"

    elif [ $TX_Percent -le 45 ];then

    echo -e "TX Progres bar   \t |#########-----------|"

    elif [ $TX_Percent -le 50 ];then

    echo -e "TX Progres bar   \t |##########----------|"

    elif [ $TX_Percent -le 55 ];then

    echo -e "\033[32mTX Progres bar   \t |###########---------|\033[0m"

    elif [ $TX_Percent -le 60 ];then

    echo -e "\033[32mTX Progres bar   \t |############--------|\033[0m"

    elif [ $TX_Percent -le 65 ];then

    echo -e "\033[32mTX Progres bar   \t |#############-------|\033[0m"

    elif [ $TX_Percent -le 70 ];then

    echo -e "\033[32mTX Progres bar   \t |##############------|\033[0m"

    elif [ $TX_Percent -le 75 ];then

    echo -e "\033[32mTX Progres bar   \t |###############-----|\033[0m"

    elif [ $TX_Percent -le 80 ];then

    echo -e "\033[32mTX Progres bar   \t |################----|\033[0m"

    elif [ $TX_Percent -le 85 ];then

    echo -e "\033[32mTX Progres bar   \t |#################---|\033[0m"

    elif [ $TX_Percent -le 90 ];then

    echo -e "\033[32mTX Progres bar   \t |##################--|\033[0m"

    elif [ $TX_Percent -le 95 ];then

    echo -e "\033[32mTX Progres bar   \t |###################-|\033[0m"

    elif [ $TX_Percent -le 110 ];then

    echo -e "\033[32mTX Progres bar   \t |####################|\033[0m"

fi

    if [ $RX_Percent -le 5 ];then

    echo -e "RX Progres bar   \t |#-------------------|"

    elif [ $RX_Percent -le 10 ];then

    echo -e "RX Progres bar   \t |##------------------|"

    elif [ $RX_Percent -le 15 ];then

    echo -e "RX Progres bar   \t |###-----------------|"

    elif [ $RX_Percent -le 20 ];then

    echo -e "RX Progres bar   \t |####----------------|"

    elif [ $RX_Percent -le 25 ];then

    echo -e "RX Progres bar   \t |#####---------------|"

    elif [ $RX_Percent -le 30 ];then

    echo -e "RX Progres bar   \t |######--------------|"

    elif [ $RX_Percent -le 35 ];then

    echo -e "RX Progres bar   \t |#######-------------|"

    elif [ $RX_Percent -le 40 ];then

    echo -e "RX Progres bar   \t |########------------|"

    elif [ $RX_Percent -le 45 ];then

    echo -e "RX Progres bar   \t |#########-----------|"

    elif [ $RX_Percent -le 50 ];then

    echo -e "\033[32mRX Progres bar   \t |##########----------|\033[0m"

    elif [ $RX_Percent -le 55 ];then

    echo -e "\033[32mRX Progres bar   \t |###########---------|\033[0m"

    elif [ $RX_Percent -le 60 ];then

    echo -e "\033[32mRX Progres bar   \t |############--------|\033[0m"

    elif [ $RX_Percent -le 65 ];then

    echo -e "\033[32mRX Progres bar   \t |#############-------|\033[0m"

    elif [ $RX_Percent -le 70 ];then

    echo -e "\033[32mRX Progres bar   \t |##############------|\033[0m"

    elif [ $RX_Percent -le 75 ];then

    echo -e "\033[32mRX Progres bar   \t |###############-----|\033[0m"

    elif [ $RX_Percent -le 80 ];then

    echo -e "\033[32mRX Progres bar   \t |################----|\033[0m"

    elif [ $RX_Percent -le 85 ];then

    echo -e "\033[32mRX Progres bar   \t |#################---|\033[0m"

    elif [ $RX_Percent -le 90 ];then

    echo -e "\033[32mRX Progres bar   \t |##################--|\033[0m"

    elif [ $RX_Percent -le 95 ];then

    echo -e "\033[32mRX Progres bar   \t |###################-|\033[0m"

    elif [ $RX_Percent -le 110 ];then

    echo -e "\033[32mRX Progres bar   \t |####################|bomb\033[0m"

fi

 

    echo -e ""

     echo -e "Network Error\t [$NIC] TX : $TXerror\tRX: $RXerror"

     echo -e "Network Drop\t [$NIC] TX : $TXdrop\tRX: $RXdrop"

     echo -e "RXoverrun\t [$NIC] RX : $RXover"

     echo -e "TXCollisions\t [$NIC] TX : $Collisions"

 

    echo "################################################################"

done

 

----------------------------------------------

 

 

 

반응형
반응형

[리눅스 쉘 스크립트]CentOS : error 확인

 

1. 용도 및 목적

로그 백업이나 과거 로그 점검시마다 확인 하기 힘들때(백업이나 삭제로 인해) 미리 걸어두고 과거 압축된 로그에 에러가 있엇는지 확인

 

2. 환경 : CentOS 6.9 64bit, /bin/bash

 

3. 쉘 스크립트

-로그 경로 생성

mkdir -p /home/test/logs

 

#vi testlogcheck.sh

----------------------------------------------

#!/bin/bash

 

######################################

#

#                   Search error

#                                                       by Ru

######################################

 

NODE=`hostname`

DATE=`date +%Y%m%d%H%M`

#체크해서 쌓는 곳(점검마다 Status 부분만 보고 전부 삭제하면됨)

LOGDIR=/home/test/logs

 

#이름이 test 프로세스 로그의 error를 체크 

STATUS=`cat /home/test/error*.log |egrep "error|ERROR|Error" | wc -l`

 

#체크한 내용의 error 갯수를 파일제목으로 생성하고 갯수가 1이상인 부분만 로그를 체크 하면된다. 다만 내용을 전부 긁어 오지는 않으니 test프로그램 원본로그 확보는 미리 체크해야한다.

LOGFILE=$LOGDIR/$NODE.testlogstatus.$STATUS.$DATE

 

#error 내용을 입력 단편적인 로그만 추출될수 있음

cat /home/test/error*.log |grep error > $LOGFILE

 

-40일 이전 로그 삭제(예약 또는 주기적인 쉘에 넣으면 됨, 안해도됨) 

find /home/test/logs -name "*testlogstatus*" -mtime +40 -exec rm {} \;

----------------------------------------------

 

-예약

crontab -e

#하루하루 주기적으로 체크, 이부분은 test 프로그램 원본로그가 하루 갱신일때 이고, 로그 파일 갱신주기에 맞춰서 예약하면 된다.

59   23 * * * /home/test/testlogcheck.sh

 

 

 

반응형

+ Recent posts