- 리눅스 서버 보안업데이트로 서버 약 천대의 openssl 버전 업그레이드 작업

- 작업시간을 조금이라도 줄이고자 스크립트 작성

 

 

#!/bin/bash

#when excute on ubuntu

 

apt-get install -y gcc

apt-get install -y make make-guile

 

cd /usr/local/src

openssl version > report.out

op_version='openssl version |awk '{print $2}' | cut -c 1-5'

 

case "$op_version" in

 

1.0.2)

wget 10.230.9.30/openssl/openssl-"$op_verison"s.tar.gz

tar zxvf openssl-1.0.2s.tar.gz

cd /usr/local/src/openssl-1.0.2s

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

;;

 

1.0.1)

wget 10.230.9.30/openssl/openssl-"$op_verison"s.tar.gz

tar zxvf openssl-1.0.2s.tar.gz

cd /usr/local/src/openssl-1.0.2s

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

;;

 

1.1.0)

wget 10.230.9.30/openssl/openssl-"$op_verison"k.tar.gz

tar zxvf openssl-1.1.0k.tar.gz

cd /usr/local/src/openssl-1.1.0k

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

;;

 

1.1.1)

wget 10.230.9.30/openssl/openssl-"$op_verison"c.tar.gz

tar zxvf openssl-1.1.1c.tar.gz

cd /usr/local/src/openssl-1.1.1c

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

;;

 

*)

wget 10.230.9.30/openssl/openssl-1.1.1c.tar.gz

tar zxvf openssl-1.1.1c.tar.gz

cd /usr/local/src/openssl-1.1.1c

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

exit

;;

esac

 

cd ../

openssl version >> report.out

cat report.out

 

 

'Linux Server > Script' 카테고리의 다른 글

[Script] java_tomcat 설치 및 apm 연동  (0) 2018.02.26
[Script] mysql 덤프  (0) 2018.02.26
[Script] 홈소스 백업  (0) 2018.02.26
[개발공부] 스크립트 작성  (0) 2017.10.17
[개발공부] php 개발  (0) 2016.12.14
Posted by 실력키우기

[java_tomcat설치 및 apm 연동스크립트]


#!/bin/bash


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

#  설치에 필요한 변수 지정

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


# 소스 다운로드 주소

SOURCE_ADDR="http://115.68.220.220/source/java_tomcat"


# htaccess 보안 설정 로그인 

ID="아이디비공개"

PW="비밀번호비공개"

wget="wget --user=$ID --password=$PW"


# 소스 저장 경로

SOURCE_DIR="/usr/local/src/Java_tomcat"


mkdir $SOURCE_DIR


cd $SOURCE_DIR


# java 버전 선택

java1="jdk1.7.0_45"

java2="jdk1.8.0_151"


echo ""

echo -e "    \\033[01;31m[[ Java 버전 선택 ]]"

echo -e "\\033[01;32m=============================="

echo -e "    \\033[01;32m1) Java 1.7.x ( 1.7.0_45 )"

echo -e "    \\033[01;32m2) Java 1.8.x ( 1.8.0_151 )"

echo ""

echo -e -n "\\033[01;33m버전을 선택해주세요 [1,2] : "

read Java_S

echo ""



# Tomcat 버전 선택

tomcat1="apache-tomcat-6.0.20"

tomcat2="apache-tomcat-7.0.42"

tomcat3="apache-tomcat-8.0.47"


echo ""

echo -e "    \\033[01;31m[[ Tomcat 버전 선택 ]]"

echo -e "\\033[01;32m=============================="

echo -e "    \\033[01;32m1) Tomcat 6.0.x ( 6.0.20 )"

echo -e "    \\033[01;32m2) Tomcat 7.0.x ( 7.0.42  )"

echo -e "    \\033[01;32m3) Tomcat 8.0.x ( 8.0.47  )"

echo ""

echo -e -n "\\033[01;33m버전을 선택해주세요 [1,2,3] : "

read Tomcat_S



# 아파치 설치되어 있는 경로 

echo ""

echo -e "    \\033[01;31m[[ 아파치 conf 파일 경로 입력 ]]"

echo -e "\\033[01;32m=============================="

echo ""

echo -e -n "\\033[01;33m 현재 아파치 conf 파일의 경로를 입력해주세요 : "

echo -e "\\033[01;33m ex) /usr/local/apache/conf/"

echo -e -n "\\033[01;33m 아파치 conf 파일 경로 : "

read apache_conf


# 아파치 apxs 경로

echo ""

echo -e "    \\033[01;31m[[ 아파치 apxs 경로 입력 ]]"

echo -e "\\033[01;32m=============================="

echo ""

echo -e -n "\\033[01;33m 현재 아파치 apxs 경로를 입력해주세요 : "

echo -e "\\033[01;33m ex ) /usr/local/apache/bin/apxs "

echo -e -n "\\033[01;33m 아파치 apxs 경로 : "

read apache_apxs


#Java 설치시작
case "$Java_S" in
1)
cd $SOURCE_DIR
$wget $SOURCE_ADDR/$java1-x86_64.tar.gz
tar zxvf $java1-x86_64.tar.gz
mv $java1 /usr/local/java
cp -arp /etc/profile /etc/profile_smileservbackup

#여기에 환경변수설정 // sed -i 로 2번째 줄부터 5번째 줄까지 환경변수 추가
sed -i '2 i\JAVA_HOME=/usr/local/java' /etc/profile
sed -i '3 i\CLASSPATH=.:$JAVA_HOME/lib/tools.jar' /etc/profile
sed -i '4 i\PATH=$PATH:$JAVA_HOME/bin' /etc/profile
sed -i '5 i\export JAVA_HOME CLASSPATH PATH' /etc/profile
source /etc/profile
;;

# 자바 1.8 설치 시작
# 자바 1.8버전은 ris에 없으며, 공식홈페이지에서 wget으로 다운받을경우 압축이 안풀리는 버그가 있음.
# 해당버전 개인 서버에 올려놓고 작업진행

2)
cd $SOURCE_DIR
#$wget $SOURCE_ADDR/$java2.tar.gz
#tar zxvf $java2.tar.gz
#mv $java2 /usr/local/java
wget --user=아이디비공개 --password=비밀번호비공개 http://115.68.220.220/java/jdk-8u151-linux-x64.tar.gz
tar -zxvf jdk-8u151-linux-x64.tar.gz
mv jdk1.8.0_151 /usr/local/java
cp -arp /etc/profile /etc/profile_backup

#여기에 환경변수설정 // sed -i 로 2번째 줄부터 5번째 줄까지 환경변수 추가
sed -i '2 i\JAVA_HOME=/usr/local/java' /etc/profile
sed -i '3 i\CLASSPATH=.:$JAVA_HOME/lib/tools.jar' /etc/profile
sed -i '4 i\PATH=$PATH:$JAVA_HOME/bin' /etc/profile
sed -i '5 i\export JAVA_HOME CLASSPATH PATH' /etc/profile
source /etc/profile
;;

*)
echo -e -n "잘못 입력 했습니다."
exit
;;
esac


#Tomcat 6버전 설치
case "$Tomcat_S" in
1)
cd $SOURCE_DIR
$wget $SOURCE_ADDR/$tomcat1.tar.gz
tar zxvf $tomcat1.tar.gz
mv $tomcat1 /usr/local/tomcat
cp -arp /etc/profile /etc/profile_backup2

# java에서 환경 변수 설정했던 부분을 sed 를 이용하여 다시 재설정
sed -i '3 i\CATALINA_HOME=/usr/local/tomcat' /etc/profile
sed -i 's/CLASSPATH=\.\:\$JAVA\_HOME\/lib\/tools\.jar/CLASSPATH\=\.\:\$JAVA\_HOME\/lib\/tools\.jar\:\$CATALINA\_HOME\/lib\-jsp\-api\.jar\:\$CATALINA\_HOME\/lib\/servlet\-api\.jar/g' /etc/profile
sed -i 's/PATH=\$PATH\:\$JAVA\_HOME\/bin/PATH=\$PATH\:\$JAVA\_HOME\/bin\:\$CATALINA\_HOME\/bin/g' /etc/profile
sed -i 's/JAVA\_HOME CLASSPATH PATH/JAVA\_HOME CLASSPATH PATH CATALINA\_HOME/g' /etc/profile
source /etc/profile
/usr/local/tomcat/bin/startup.sh
cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chkconfig --add tomcat
;;


#Tomcat 7버전 설치
2)
cd $SOURCE_DIR
$wget $SOURCE_ADDR/$tomcat2.tar.gz
tar zxvf $tomcat2.tar.gz
mv $tomcat2 /usr/local/tomcat
cp -arp /etc/profile /etc/profile_backup2

# java에서 환경 변수 설정했던 부분을 sed 를 이용하여 다시 재설정
sed -i '3 i\CATALINA_HOME=/usr/local/tomcat' /etc/profile
sed -i 's/CLASSPATH=\.\:\$JAVA\_HOME\/lib\/tools\.jar/CLASSPATH\=\.\:\$JAVA\_HOME\/lib\/tools\.jar\:\$CATALINA\_HOME\/lib\-jsp\-api\.jar\:\$CATALINA\_HOME\/lib\/servlet\-api\.jar/g' /etc/profile
sed -i 's/PATH=\$PATH\:\$JAVA\_HOME\/bin/PATH=\$PATH\:\$JAVA\_HOME\/bin\:\$CATALINA\_HOME\/bin/g' /etc/profile
sed -i 's/JAVA\_HOME CLASSPATH PATH/JAVA\_HOME CLASSPATH PATH CATALINA\_HOME/g' /etc/profile
source /etc/profile
/usr/local/tomcat/bin/startup.sh
cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chkconfig --add tomcat
;;

#Tomcat 8버전 설치
# ris에 해당버전이 없으며, 공식홈페이지에서 wget 으로 다운받아 사용
3)
cd $SOURCE_DIR
#$wget $SOURCE_ADDR/$tomcat3.tar.gz
#tar zxvf $tomcat3.tar.gz
#mv $tomcat3 /usr/local/tomcat
wget http://apache.tt.co.kr/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
tar -xvf apache-tomcat-8.0.47.tar.gz
mv apache-tomcat-8.0.47 /usr/local/tomcat
cp -arp /etc/profile /etc/profile_backup2

#여기에 환경변수설정 // sed -i 로 2번째 줄부터 5번째 줄까지 환경변수 추가
sed -i '3 i\CATALINA_HOME=/usr/local/tomcat' /etc/profile
sed -i 's/CLASSPATH=\.\:\$JAVA\_HOME\/lib\/tools\.jar/CLASSPATH\=\.\:\$JAVA\_HOME\/lib\/tools\.jar\:\$CATALINA\_HOME\/lib\-jsp\-api\.jar\:\$CATALINA\_HOME\/lib\/servlet\-api\.jar/g' /etc/profile
sed -i 's/PATH=\$PATH\:\$JAVA\_HOME\/bin/PATH=\$PATH\:\$JAVA\_HOME\/bin\:\$CATALINA\_HOME\/bin/g' /etc/profile
sed -i 's/JAVA\_HOME CLASSPATH PATH/JAVA\_HOME CLASSPATH PATH CATALINA\_HOME/g' /etc/profile
source /etc/profile
/usr/local/tomcat/bin/startup.sh
cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chkconfig --add tomcat
;;

*)
echo -e -n "잘못 입력 했습니다."
exit
;;
esac

# tomcat & apache 연동


cd $SOURCE_DIR

wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz

tar -zxvf tomcat-connectors-1.2.42-src.tar.gz

cd tomcat-connectors-1.2.42-src/native/

./configure --with-apxs=$apache_apxs

make

make install

cd $apache_conf

touch workers.properties

echo "workers.tomcat_home=/usr/local/tomcat

workers.java_home=/usr/local/java

# BEGIN workers.properties

worker.list=ajp13

worker.ajp13.port=8009

worker.ajp13.host=localhost

worker.ajp13.type=ajp13

worker.ajp13.lbfactor=1

# END workers.properties" >> $apache_conf/workers.properties


cp -arp httpd.conf httpd.conf_smileservbackup


# 아파치 설정부분에 모듈 추가하여 추가한 바로 아래에 설정내용 입력

apache_conf2=$apache_conf\httpd.conf

num=`cat -n $apache_conf2 | grep "LoadModule" | awk -F" " '{print $1}' |tail -n 1`

sed -i "`expr $num + 1` i\LoadModule jk_module modules/mod_jk.so" $apache_conf2

sed -i "`expr $num + 2` i\<IfModule jk_module>" $apache_conf2

sed -i "`expr $num + 3` i\JkWorkersFile conf/workers.properties" $apache_conf2

sed -i "`expr $num + 4` i\JkShmFile logs/mod_jk.shm" $apache_conf2

sed -i "`expr $num + 5` i\JkLogFile logs/mod_jk.log" $apache_conf2

sed -i "`expr $num + 6` i\JkLogLevel info" $apache_conf2

sed -i "`expr $num + 7` i\JkLogStampFormat \"[%a %b %d %H :%M :%S %Y]\"" $apache_conf2

sed -i "`expr $num + 8` i\JkMount /*.jsp ajp13" $apache_conf2

sed -i "`expr $num + 9` i\</ifModule>" $apache_conf2


# DirectoryIndex 부분과 AddType 부분에 jsp 내용 추가
sed -i 's/DirectoryIndex index.*/DirectoryIndex index.html index.php index.jsp/g' $apache_conf2
sed -i 's/AddType application\/x-httpd-php .*/AddType application\/x-httpd-php .php .jsp .html/g' $apache_conf2

echo ""
echo -e "    \\033[01;31m[[ java & tomcat 설치 및 아파치와 연동 완료되었습니다. ]]"
echo -e "    \\033[01;32m1) 아파치에서 vhost를 사용할 경우 각 도메인 설정에 JKMount /*.jsp ajp13 을 추가하여 사용하시면 됩니다. "
echo -e "    \\033[01;32m2) 현재 jsp 를 기본적으로 읽어드리는 경로는 /usr/local/tomcat/webapps/ROOT/ 입니다. "
echo -e "    \\033[01;32m3) 해당 경로를 변경하고 싶다면 , 톰캣에서 설정을 변경해주시면 되겠습니다."
echo -e "    \\033[01;32m3) 웹서비스를 하는 고객일 경우를 대비하여 아파치 재시작을 하지 않았습니다.아차피를 재시작 하셔야 정상적으로 연동이 완료됩니다."
echo -e "    \\033[01;32m3) 감사합니다."
echo ""

          



'Linux Server > Script' 카테고리의 다른 글

[Script] openssl 버전 업그레이드 스크립트 작성  (0) 2021.07.07
[Script] mysql 덤프  (0) 2018.02.26
[Script] 홈소스 백업  (0) 2018.02.26
[개발공부] 스크립트 작성  (0) 2017.10.17
[개발공부] php 개발  (0) 2016.12.14
Posted by 실력키우기

[ 단순 mysql 덤프 ]


#!/bin/sh


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


USERNAME="root"


PASSWORD="패스워드비공개"


DATABASE="test"


mysqldump -u$USERNAME -p$PASSWORD  $DATABASE > /backup/mysql_db_bak_${DATE}.sql

Posted by 실력키우기

[ 단순 홈소스 백업 및 삭제 ]


#!/bin/bash

/usr/bin/find /backup/back/ -ctime +1 -exec rm -rf {} \;

system_backup_root="/backup/back/"

sysdtime=`date +%Y%m%d`

mkdir -p $system_backup_root/$sysdtime

tar -Pczf "$system_backup_root/$sysdtime/Les_DB_$sysdtime.tar.gz" /var/lib/mysql

tar -Pczf "$system_backup_root/$sysdtime/Les_LM_$sysdtime.tar.gz" /home/les

tar -Pczf "$system_backup_root/$sysdtime/Les_WEB_$sysdtime.tar.gz" /usr/local/src/mysqlbackup

exit 0

Posted by 실력키우기

[ 스크립트 공부 ] 


home=/home/les/script/       ->       변수설정


cd $home       ->       특수문자 $를 사용하여 변수사용


echo "hahaha" > ./test       ->       test파일에 hahaha라는 문자삽입(기존에 내용이 있으면 다지워지며 hahaha만 남게됨)


echo "hoho" >> ./test       ->       test파일에 hoho라는 글을 맨 아래에 삽입


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


case 문 사용법



read       ->     해당 명령어로 입력받을 수 있다.


read Java_S       ->     Java_S 라는 변수에 입력받은 값 저장


case "$Java_S" in       ->       Java_S 라는 변수의 입력값에 따라서 아래 case 1~2번 실행됨


1)

cd $SOURCE_DIR

$wget $SOURCE_ADDR/$java1.tar.gz

tar zxvf $java1.tar.gz

mv $java1 /usr/local/java

cp -arp /etc/profile /etc/profile_smileservbackup

여기에 환경변수설정

source /etc/profile

;;


2)

cd $SOURCE_DIR

$wget $SOURCE_ADDR/$java2.tar.gz

tar zxvf $java2.tar.gz

mv $java2 /usr/local/java

cp -arp /etc/profile /etc/profile_smileservbackup

여기에 환경변수설정

source /etc/profile

;;


*)

echo -e -n "잘못 입력 했습니다."

exit

;;

esac

'Linux Server > Script' 카테고리의 다른 글

[Script] openssl 버전 업그레이드 스크립트 작성  (0) 2021.07.07
[Script] java_tomcat 설치 및 apm 연동  (0) 2018.02.26
[Script] mysql 덤프  (0) 2018.02.26
[Script] 홈소스 백업  (0) 2018.02.26
[개발공부] php 개발  (0) 2016.12.14
Posted by 실력키우기

[php 언어 공부



정적 변수 : 지역 변수의 값을 그대로 유지하여 사용하는변수    -> static 키워드를 사용


상수 : 똑같은 값을 가지는 변하지 않는 수    -> define() 함수를 이용




Posted by 실력키우기
이전버튼 1 이전버튼

블로그 이미지
공 부 하 는 직 장 인
실력키우기

태그목록

공지사항

Yesterday
Today
Total

최근에 달린 댓글