'Linux/Linux:sh개발'에 해당되는 글 9건

  1. 2019.06.13 geth 프로세스 running check script
  2. 2017.05.30 Mac에서 sed를 이용한 치환
  3. 2015.06.11 keepAlive 스크립트
  4. 2015.06.09 vrrp 및 ping -b가 안될때
  5. 2015.04.22 lsof
  6. 2015.04.09 원격 자동접속 shell script 및 SCP 1
  7. 2015.03.27 SIGINT 와 Trap
  8. 2015.03.11 Shell script 예제.
  9. 2014.10.29 autoFTP.sh

#!/bin/bash

while sleep 5; do
PROCESS_NUM=`ps -ef | grep -v grep | grep -v attach | grep geth | wc -l`
if [ $PROCESS_NUM -ge 1 ]; then
echo $PROCESS_NUM"process"
else
echo "not running ! RESTARTING" $(date)
./start.sh
fi
done

 

 

단, 실제로 $ps -ef | grep -v grep | grep -v attach | grep geth | wc -l 한 결과보다
스크립트에서 찍는 결과가 1이 더 큰 값이 나오는데.. 왜 그런지 조사 중.

Posted by yongary
,

 sed 로  치환's/4.5.0-SNAPSHOT/4.7.0-SNAPSHOT/g' 

     명령을 써서 다른 파일에 저장하는 건 간단하지만


같은 파일에 저장하고 싶을때는 -i 옵션을 써야 한다.


하지만 맥에서는 -i 옵션 뒤에 항상 파라미터가 필요해서 '' 를 넣어주면 잘 동작한다.


예) sed -i '' 's/4.5.0-SNAPSHOT/4.7.0-SNAPSHOT/g' pom.xml


Posted by yongary
,

간혹 네트웍이  몇초간 접속 안하면

세션이 끊어지도록 구축된 경우가 있다.

 

이런 경우 네트웍이 끊어지지 않도록 계속 연결을 물고 있으면 편하므로

아래와 같은 sell script를 만들어 연결을 유지하곤 한다.

 

#!/bin/sh

while sleep 2; do
telnet server_ip server_port << EOF
quit   (서버에서 결종료 명령어.. 없으면 안써도 될듯)
EOF
done

Posted by yongary
,

vrrp가 A/B 서버간에 메시지를 broadcating하는데

근래 OS들이 이 broadcast들을 default로는 막는 경우가 존재한다.

 

조치:

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Posted by yongary
,

lsof

Linux/Linux:sh개발 2015. 4. 22. 22:54

list of Open File.  특정파일을 access하고 있는 프로세서들을 나열한다.


예)

$lsof mylogfile


$lsof /proc

Posted by yongary
,

아주 유용하게 쓰고 있는 자동접속 script.

전문가가 ssh_stdin 을 개발해 주셔서, 이를 이용해 쓰고 있다.


===================================자동접속 + 작업 SCIRPT ==============

#!/bin/sh



PASSWD="myPasswd!"

curDir=$(pwd)

SSH_STDIN=$curDir/ssh_stdin

sshOption="-T -o StrictHostKeyChecking=no -o ConnectTimeout=1 -o NumberOfPasswordPrompts=1"



SVR_LIST="172.25.49.135 172.25.49.136"


mpList=$(eval echo $SVR_LIST)


for i in $mpList

        do


        echo "---------"$i

        echo $PASSWD | $SSH_STDIN ssh $sshOption "root@"$i "ps -ef|grep redis"

        echo $PASSWD | $SSH_STDIN ssh $sshOption "root@"$i "nstatus"

 

  #scp를 하고 싶을때는 ..  -T옵션 빼고.. $1에 파일이름 줘서.. 아래처럼. 하면 된다.

  echo $PASSWD | $SSH_STDIN scp $sshOption $1 "root@"$i":"$1

        done



=============================ssh_stdin내용=================================

#!/bin/bash


if [ -n "$SSH_ASKPASS_PASSWORD" ]; then

    cat <<< "$SSH_ASKPASS_PASSWORD"

elif [ $# -lt 1 ]; then

    echo "Usage: echo password | $0 <ssh command line options>" >&2

    exit 1

else


read SSH_ASKPASS_PASSWORD


export SSH_ASKPASS=$0

export SSH_ASKPASS_PASSWORD


[ "$DISPLAY" ] || export DISPLAY=dummydisplay:0


# use setsid to detach from tty

# exec setsid "$@" </dev/null

exec setsid "$@"

fi

Posted by yongary
,

SIGINT 라고 가끔 본 적이 있을 것이다.

이 것은 Interrupt 시그널을 의미한다.



Interrupt (^c)     시그널은 2  

Quit     (^\)    시그널은 3

EOF(or Exit ^D)    시그널은 1


이 중에서 2,3번 시그널이 shell script가 도는 동안에 동작안하게 하고 싶으면..


trap "" 2 3    <- 이렇게 무시를 걸어 놓으면 된다.



trap 2 3 reset  <-shell script종료 후에는

Posted by yongary
,

-F_ 없어도 됨(2210)

echo ${JOB_NAME} | awk -F_ '{print $3}' |xargs -I {} rm -rf /tmp/doxygen/{}; 

 

수많은 프로세스들 한방에 죽이기

ps -ef | grep 키워드 | awk '{print $2}' | xargs -I {} sudo kill {}

 

find . -name "*.js" -print  | xargs grep -n         keywordToFind

                   (filename)           (linenumber)   

 

Posted by yongary
,

autoFTP.sh

Linux/Linux:sh개발 2014. 10. 29. 11:02

ftp에 접속해서 파일을 다 가져오는 shell script는 다음과 같다.

여기서 EOF 대신에 ENDFILE등 다른 임의의 단어를 사용해도 된다.

 

 

< autoFTP.sh 내용>

 

ftp -n 127.0.0.1 << EOF
user root pass1234
cd ftpserver
prompt off

binary
mget *.out
bye
EOF

Posted by yongary
,