값 비교하기

프로그래밍/BASH SHELL|2015. 1. 27. 10:09
반응형

문자열비교 

[ string ] : string이 빈 문자열이 아니라면 참 

[ string1 = string2 ] : 두 문자열이 같다면 참 

[ string1 != string2 ] : 두 문자열이 다르면 참 

[ -n string ] : 문자열이 null(빈 문자열) 이 아니라면 참 

[ -z string ] : 문자열이 null(빈 문자열) 이라면 참 


산술비교 

[ expr1 -eq expr2 ] : 두 표현식 값이 같다면 참 ( EQual ) 

[ expr1 -ne expr2 ] : 두 표현식 갑이 같지 않다면 참 ( Not Equal ) 

[ expr1 -gt expr2 ] : expr1 > expr2 이면 참 ( Greater Then ) 

[ expr1 -ge expr2 ] : expr1 >= expr2 이면 참 ( Greater Equal ) 

[ expr1 -lt expr2 ] : expr1 < expr2 이면 참 ( Less Then ) 

[ expr1 -le expr2 ] : expr1 <= expr2 이면 참 ( Less Equal ) 

[ ! expr ] : expr 이 참이면 거짓, 거짓이면 참 

[ expr1 -a expr2 ] : expr1 AND expr2 의 결과 ( 둘다 참이면 참 ) 

[ expr1 -o expr2 ] : expr1 OR expr2 의 결과 ( 둘중 하나만 참이면 참 )


[출처] shell Script (쉘 스크립트).. 비교|작성자 찡찡이 (http://blog.naver.com/msn19972/90014737234)

반응형

'프로그래밍 > BASH SHELL' 카테고리의 다른 글

cut 명령어 (문자열 자르기)  (0) 2015.01.27
[perl] 포트 체크 하기  (0) 2015.01.27
쉘스크립트 for 문  (0) 2015.01.27
if 문 사용  (0) 2015.01.27
숫자 계산하기  (0) 2015.01.27

댓글()

쉘스크립트 for 문

프로그래밍/BASH SHELL|2015. 1. 27. 10:09
반응형
#!/bin/bash
for ((i=0; i<=20; i++)); do
    echo $i
done 

또는

#!/bin/bash

for i  in $(seq 1 20); do

    echo $i

done 



break 를 넣으면 중간에 for 문이 중지되어 빠져나오게 됩니다.
 


반응형

'프로그래밍 > BASH SHELL' 카테고리의 다른 글

[perl] 포트 체크 하기  (0) 2015.01.27
값 비교하기  (0) 2015.01.27
if 문 사용  (0) 2015.01.27
숫자 계산하기  (0) 2015.01.27
쉘스크립트로 telnet 접속 및 명령 실행하기  (0) 2015.01.27

댓글()

if 문 사용

프로그래밍/BASH SHELL|2015. 1. 27. 10:08
반응형
#!/bin/bash
status=`ls -al |wc -l`

if [ "$status" == "3" ]; then
echo "파일이 한개입니다."

elif [ "$status" == "4" ]; then
echo "파일이 두개입니다."

elif [ "$status" == "5" ]; then
echo "파일이 세개입니다."

else
echo "파일이 네개 이상입니다."

fi 


최신 bash 에서는 == 대신 = 로 사용될 수 있습니다.
 


반응형

댓글()

숫자 계산하기

프로그래밍/BASH SHELL|2015. 1. 27. 10:08
반응형

number=1

number=`expr $number + 1`

echo "$number"


결과 : 2


반응형

댓글()

쉘스크립트로 telnet 접속 및 명령 실행하기

프로그래밍/BASH SHELL|2015. 1. 27. 10:08
반응형

아래 내용으로 파일을 만든 후 실행하면 됩니다.

응용을 하여 ftp, telnet, ssh 등 연결후 실행되는 자동 스크립트를 만들 수 있습니다.


run.sh

#!/bin/sh

tpipe(){

sleep 1; echo 'helo'

sleep 1; echo 'mail from:admin@sysdocu.com'

sleep 1; echo 'rcpt to:admin@sysdocu.com'

sleep 1; echo 'quit'

}

tpipe | telnet sysdocu.com 25 


실행

[root@sysdocu ~]# sh run.sh


참고로 telnet 명령뒤에 '| tee a.txt' 를 추가하면 텔넷 출력 내용을 a.txt 에 저장합니다.


반응형

'프로그래밍 > BASH SHELL' 카테고리의 다른 글

if 문 사용  (0) 2015.01.27
숫자 계산하기  (0) 2015.01.27
영문 소문자, 대문자 그리고 숫자로 난수 발생하기  (0) 2015.01.27
글자 색상  (0) 2015.01.27
악성코드 <script> 일괄 삭제  (0) 2015.01.27

댓글()

영문 소문자, 대문자 그리고 숫자로 난수 발생하기

프로그래밍/BASH SHELL|2015. 1. 27. 10:08
반응형

[root@sysdocu ~]# random=`hexdump -n4 -e'"%3_u "' /dev/urandom | sed -e 's/[^a-zA-Z0-9]//g'`

 

random 이라는 변수에 영문 소문자, 대문자 그리고 숫자만 출력됩니다.

위에서  | sed -e 's/[^a-zA-Z0-9]//g' 부분은 특수문자를 제외하기 위해서 사용하였습니다.

 

반응형

'프로그래밍 > BASH SHELL' 카테고리의 다른 글

숫자 계산하기  (0) 2015.01.27
쉘스크립트로 telnet 접속 및 명령 실행하기  (0) 2015.01.27
글자 색상  (0) 2015.01.27
악성코드 <script> 일괄 삭제  (0) 2015.01.27
일일 시스템 점검 스크립트  (0) 2015.01.27

댓글()

글자 색상

프로그래밍/BASH SHELL|2015. 1. 27. 10:07
반응형

\033[00;30m : 검정

\033[00;31m : 빨강

\033[00;32m : 녹색

\033[00;33m : 노랑

\033[00;34m : 파랑

\033[00;35m : 핑크

\033[00;36m : 옥색

\033[00;37m : 흰색

 

echo -e 옵션을 주어야 적용됩니다.

색상을 원래대로 돌리려면 \033[0m 을 사용하세요.

반응형

댓글()

악성코드 <script> 일괄 삭제

프로그래밍/BASH SHELL|2015. 1. 27. 10:07
반응형

iframe 이나 base64, script 등 해킹 공격을 받아 수많은 소스에 같은 코드가 삽입되었을때

(백업본을 이용하여 복구가 불가능하다면) 아래의 스크립트 파일로 삭제가 가능합니다.

한행에 다른 코드가 포함되어있어도 <script> 에서 </script> 까지만 삭제를 합니다.

 

search 경로만 변경하여 사용하면 됩니다.

 


[root@sysdocu ~]# vi run.sh

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

#!/bin/bash

search=`find /usr/local/src/test/ | egrep "*.*" | xargs grep -ri "^[[:space:]]*<script>[[:alnum:] || [:punct:]]*</script>"| awk -F":" '{print $1}'`
for rmscript in $search
do
sed -i "s/^[[:space:]]*<script>[[:alnum:] || [:punct:]]*</script>//g" $rmscript
done

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


[root@sysdocu ~]# sh run.sh


반응형

댓글()

일일 시스템 점검 스크립트

프로그래밍/BASH SHELL|2015. 1. 27. 10:07
반응형
1. check.sh 만들기 
[root@isp-dns ~]# vi check.sh  
 
echo -e "n 1. 오늘날자:"
date
echo -e "n 2. 디스크용량"
df -h
echo -e "n 3. 포트점검"
netstat -an | grep LISTEN
echo -e "n 4. /tmp점검"
ls -al /tmp
echo -e "n 5. /var/tmp점검"
ls -al /var/tmp
echo -e "n 6.  큐에쌓인메일수 점검"
ls -l /var/spool/mqueue | wc -l
echo -e "n 7. 실행프로세스 점검"
pstree
echo -e "n 8. 최후접속자 점검"
lastlog | grep -v "한번도"
 
echo -e "n 9. Memory"
free
echo -e "n 10. Uptime"
uptime
 

2. check 권한주기
[root@isp-dns ~]# ls -al check.sh 
-rw-r--r--    1 root     root          385  1월 10 00:09 check.sh
[root@isp-dns ~]# chmod 755 check.sh 
[root@isp-dns ~]# ./check.sh
 
3. 크론텝에 등록하여 매일 메일로 받기
[root@isp-dns ~]# crontab -e
MAILTO=topasvga@shinbiro.com
00 03,15 * * *  /usr/sbin/ntpdate time.bora.net &> /dev/null
00 09 * * *     /home/ncadmin/disk.py
00 07 * * * '/root/check.sh | mail -s "System Check ip address yejin.pe.kr " topasvga@shinbiro.com'

4. 실행
[root@isp-dns ~]# /root/check.sh | mail -s "System Check ip address yejin.pe.kr " topasvga@shinbiro.com 
 
 
트라블 슈팅
[topasvga@localhost ~]$ ./check.sh 
./check.sh: ./check.sh: cannot execute binary file
=>   echo -e "n 8. 최후접속자 점검"  <-   n 때문에 안되는것임.  echo부분은 복사해서 넣지 말고 직접vi로 수정해야함

 

 

[출처] 마이위트 | 최고관리자 (http://www.2udream.com/bbs/board.php?bo_table=B16&wr_id=193&page=18&page=18)

반응형

댓글()

[vi] 특정 단어를 포함하여 앞 또는 뒤 공백 선택

프로그래밍/BASH SHELL|2015. 1. 27. 10:06
반응형

s 는 공백 한 개를 의미

 

s*sysdocu            // sysdocu 문자를 포함한 앞의 모든 공백

sysdocus*            // sysdocu 문자를 포함한 뒤의 모든 공백

반응형

댓글()

[vi] 특정 단어를 포함하여 그줄의 앞 또는 뒤 끝까지

프로그래밍/BASH SHELL|2015. 1. 27. 10:06
반응형

.*Distrib          // Distrib 를 포함하여 줄 맨앞까지

Distrib.*          // Distrib 를 포함하여 줄 맨뒤까지

반응형

댓글()