1) 원격 서버 실행

ssh user@ip주소 "

   명령어

"

ssh linuxuser@10.10.10.10 "

echo 'Tomcat shutdown'
/usr/local/tomcat9/bin/shutdown.sh

sleep 10

echo 'kill Tomcat'
ps -ef | grep java | grep tomcat9 | grep -v grep | awk '{ print $2}' | xargs kill -9

sleep 10

echo 'Tomcat start'
/usr/local/tomcat9/bin/startup.sh

"

 

2) 원격 서버 실행

ssh user@ip주소 

<< 'ENDSSH'

   명령어

ENDSSH

ssh linuxuser@10.10.10.10  << 'ENDSSH'

~
명령어
~

ENDSSH

 

# Node.js 소스 배포

tar -cf ./source.tar.gz ./source
scp ./source.tar.gz sbsystems@15.164.45.229:/usr/local/myservice
rm -rf ./source.tar.gz

ssh sbsystems@15.164.45.229 << 'ENDSSH'

pm2 kill

sleep 1

cd /usr/local/myservice
rm -rf ./source
tar -xf ./source.tar.gz
rm -rf ./source.tar.gz

sleep 1

pm2 start /usr/local/myservice/source/app.js --name myservice

ENDSSH

 

 

#!/bin/bash

# ====================================================
# 로그 파일 압축 및 삭제
# ----------------------------------------------------
# DELETE 에 지정된 일자가 되면 삭제
# COMPRESS 에 지정된 일자가 되면 압축. 압축은 bzip2 을 이용
# ====================================================

DELETE=30
COMPRESS=1

LOGS=(
"/home/paint/logs/"
"/home/paint/logs2/"
"/home/paint/logs3/"
)

for logdir in "${LOGS[@]}"; do
  if test -d $logdir
  then
    sudo find -L $logdir -name "*.bz2" -type f -mtime +${DELETE} | sudo xargs rm -f
    sudo find -L $logdir \( \( -name "*.log-*" -or -name "*log*" \) -and ! -name "*.bz2" \) -type f -mtime +${COMPRESS} | sudo xargs bzip2 -f
  fi
done

참고 https://mcpaint.tistory.com/247

 

# 원격 쉘 실행시 아래 에러발생시

sudo: a terminal is required to read the password; either use the S option to read from standard input or configure an askpass helper

<as-is>
sudo find -L $logdir -name "*.bz2" -type f -mtime +${DELETE} | sudo xargs rm -f

<to-be>

패스워드를 앞쪽에 echo 'password' 추가 및 -S 옵션추가.
echo 'password' | sudo -S find -L $logdir -name "*.bz2" -type f -mtime +${DELETE} | sudo xargs rm -f

 

 

원격에서 tomcat down이 잘 안된다. 

원격서버에 tomcat restart shell 파일을 만들어 jenkins에서 shell파일을 호출하자.

 

+ Recent posts