1. 개요 쉘 스크립트 내에서 다른 스크립트를 불러오거나 할 때 절대경로가 아닌 상대경로로 지정할 경우 실행 환경(pwd)에 따라 해당 파일을 못 불러오는 경우가 있다. 이런 경우 실행된 쉘 스크립트의 경로를 분석하여 해당 경로로 cd하면 모든 상대경로가 맞아들어간다. 2. command FULL_PATH=`basename $0` # 현재 스크립트의 경로 DIR_PATH=”`echo $0 | sed ‘s/’$FULL_PATH’//’`” # 현재 스크립트의 Directory(../스크립트) […]
Category: Shell Script
실행 결과 1줄을 입력으로 해서 반복문 돌리기
1. 개요 “this is apple” 앞의 문장을 for문 입력으로 받으면 실행 변수는 다음과 같다 this / is / apple 그런데 ‘this is apple’을 입력으로 받아서 반복문 안에서 가지고 놀고싶다면? 2. command while read input_array do echo “$input_array” done < <(echo “$input_lines”) * 주의! “done < <()” 이부분을 띄어쓰기를 변경하고 싶겠지만 변경하면 인식 안 됨! […]
실행 결과가 여러 줄일때 echo로 출력하면 1줄로 나오는 경우
1. 개요 실행 결과가 여러 줄일때 echo로 출력하면 1줄로 나오는 경우 ex> echo `명령어` echo “`명령어`” tuser@ubuntu:~/script/turtle/bin$ echo `ifconfig` eth0 Link encap:Ethernet HWaddr 00:0c:29:43:8d:c8 inet addr:172.16.60.128 Bcast:172.16.60.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe43:8dc8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7309 errors:0 dropped:0 overruns:0 frame:0 TX packets:7196 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:903286 (903.2 […]
shell script 암호화
1. 개요 C 소스의 경우 컴파일을 하면 바이너리 파일로 만들어지기 때문에 수정을 할 수가 없다. 그런데 쉘 스크립트는 파일을 누구나 열어서 수정할 수 있기 때문에 저작권, 계정 유출의 문제가 발생할 우려가 있다. 2. 다운로드 및 설치 wget https://github.com/existz/shc-3.8.9/archive/master.zip unzip master.zip cd shc-3.8.9-master make && make install ; sudo로 설치시 /usr/local/bin에도 설치되어 아무데서나 실행 가능 […]
원격 서버에서 쉘 실행
1. 개요 원격 서버에 쉘을 copy하지 않고 실행만 할 때 원격 서버를 점검하거나 공격 스크립트를 실행할 때 2. Command ssh [ID]@[Domain or IP] < [쉘 파일]
process 상태 확인
1. 개요 ser_cnt.lst에 있는 내용을 불러와서 process 상태 확인 → ftp로 log 전송 2. ser_cnt.lst 파일 내용 scsi:66 watchdog:2 3. Source Code #!/bin/sh LOGDIR=”/home/tuser/log/process2.log” echo echo “===== check service process =====” echo for sname in $(cat ./ser_cnt.lst | awk -F: ‘{print $1}’) do pscnt=`ps -ef | grep $sname | grep -v grep | […]
apache log – ip
1. 개요 apache access log를 확인하여 IP 출력 2. Source Code #!/bin/sh # find access ip to apache log WEB_PATH=”/var/log/apache2/access.log” echo “=== check apache log ===” echo -n “year : ” read inyear echo -n “month : ” read inmonth echo -n “day : ” read inday indate=`LANG=C date ‘+%d/%b/%Y’ -d $inyear$inmonth$inday` echo “indate […]
ping to mail
1. 개요 ping 확인 → fail시 list 작성 → 메일 전송 2. Source Code #!/bin/sh LOG_DIR=”/home/tuser/log/ping.log” echo “===== 서버 점검 결과 (`date ‘+%F %T’` 기준) =====\n” email=”tuser@ubuntu” for host in $(cut -d: -f1 ./serverIP.lst) do host_ip=`grep $host ./serverIP.lst | cut -d: -f2` if ! ping -c 1 $host_ip >> /dev/null; then sleep 1 if […]
userdir 초기화
1. 개요 userdir 초기화 2. Source code #!/bin/sh sampledir=”/tmp/sample” ami=`whoami` if [ “$ami” != “root” ]; then echo ” 본 프로그램은 체계관리자(root)외 사용자는 실행이 제한됩니다.” exit fi for name in $(cat /etc/passwd | awk -F: ‘/^user/{print $1}’) do cd /home/$name if [ -d /home/$name ]; then rm -rf * fi cp -rp $sampledir/* /home/$name/ […]
Test script
1. 개요 조건문, 반복문, 함수, 변수 사용, echo 옵션, 입력 등 기본적인 쉘 스크립트 작성방법을 알 수 있는 test script이다. 2. Source code #!/bin/sh mul_func() { cnt=1 while [ $cnt -le 9 ] do echo “$multiple * $cnt = `expr $multiple \* $cnt`” cnt=`expr $cnt + 1` done } big_func() { bignum=0 if [ […]