Running crontab -e will allow you to edit your cron.
Adding a line like this to it:
@reboot /path/to/script
echo '비밀번호' | sudo -S 명령어
sudo chown -R yknam:yknam conf/
sudo chmod -R 744 conf/
echo <password> | sudo -S <command>
echo ykn9080 | sudo -S ./filebeat
fuser -n tcp 3306
kill -9 $(fuser -n tcp 11434) # find and kill
# pid찾기
pgrep -f 'process_name'
# pid찾아 지우기
kill -9 $(pgrep -f 'process_name')
# 정확한 이름을 알경우
kill -9 $(pidof 'process_name')
# 동일명 중 처음것만 지울경우
kill -9 $(pgrep -f 'process_name' | head -1)
# 대소문자 구분없앰 -i 추가
kill -9 $(pgrep -fi chrome)
sudo -S <<< "ykn9080" cat /var/lib/mysql/winubuntu.log
1. Generate a rsa keypair: # ssh-keygen
2. then copy it on the server with one simple command:
ssh-copy-id userid@hostname
ssh root@imcmaster.pro <ts.sh
nano ~/.bash_aliases
alias scotch='ssh nick@scotch.io'
alias example2='ssh root@example.com'
alias example3='ssh userxyz123@64.233.160.0 -p 56000'
alias droplet1='ssh ec2-user@droplet1.digitalocean.com -i /path/to/special/privatekey/droplet1.pem'
//reboot
source ~/.bash_aliases
1. 파일생성 : cat > <scriptname>.sh
2. 작성후 저장 :ctr-d
3. 권한변경: chmod 700 <scriptname>.sh
4. 실행: ./ss.sh
1. 시작: #! /bin/bash
2. 권한수정: chmod +x test.sh
3. 실행: ./test.sh
4. 변수: id='ykn', echo $id
변수배열: daemon=("httpd" "mysql") echo ${daemon[1]}
filelist=($(ls)) echo ${flielist[*]}
5. 연산자: num=`expr \( 3 \* 5 \) / 4 + 7 ` echo $num
6. 문자비교
문자1 == 문자2 # 문자1 과 문자2가 일치
문자1 != 문자2 # 문자1 과 문자2가 일치하지 않음
-z 문자 # 문자가 null 이면 참
-n 문자 # 문자가 null 이 아니면 참
문자 == 패턴 # 문자열이 패턴과 일치
문자 != 패턴 # 문자열이 패턴과 일치하지 않음
7. 수치비교
값1 -eq 값2 # 값이 같음(equal)
값1 -ne 값2 # 값이 같지 않음(not equal)
값1 -lt 값2 # 값1이 값2보다 작음(less than)
값1 -le 값2 # 값1이 값2보다 작거나 같음(less or equal)
값1 -gt 값2 # 값1이 값2보다 큼(greater than)
값1 -ge 값2 # 값1이 값2보다 크거나 같음(greater or equal)
값1 -gte 값2 # 값1이 값2보다 크거나
8. 파일검사
-e 파일명 # 파일이 존재하면 참
-d 파일명 # 파일이 디렉토리면 참
-h 파일명 # 심볼릭 링크파일
-f 파일명 # 파일이 일반파일이면 참
-r 파일명 # 파일이 읽기 가능이면 참
-s 파일명 # 파일 크기가 0이 아니면 참
-u 파일명 # 파일이 set-user-id가 설정되면 참
-w 파일명 # 파일이 쓰기 가능 상태이면 참
-x 파일명 # 파일이 실행 가능 상태이면 참
9. 조건:
if [ $? == 0 ]
then
echo "게이트웨이 핑 성공!"
else
echo "게이트웨이 핑 실패!"
fi
10. 반복:
for database in $(ls)
do
echo ${database[*]}
done
File내의 문자교체
$ cat hello.txt
The is a test file created by nixCrft for demo purpose.
foo is good.
Foo is nice.
I love FOO.
Consider using https:// for all your needs.
sed -i 's/foo/bar/g' hello.txt
option: /g->전체교체, /gI -> foo의 대소문자구분없음
sed 's+https://+https://www.cyberciti.biz+g' hello.txt /->+교체가능
#!/bin/bash
SVR_OR_CLIENT=$1
COMPOSE_DIR="imcclient"
CONTAINER_IMC="imcc1"
if [ $SVR_OR_CLIENT == "server" ]
then
COMPOSE_DIR="imcserver"
CONTAINER_IMC="imc1"
fi
#which host?
SERVER_SRC="namubuntu"
if [ $(hostname)=="imcserver" ]
then
SERVER_SRC="docean"
fi
echo "Remote Exec2) pull images from Dockerhub"
docker login --username=<username> --password=<password>
docker-compose up -d
echo " Changing configuration of container"
docker exec -i ${CONTAINER_IMC} sh -c "sed -i 's+const current_url=server_url.*+sconst current_url=server_url.${SERVER_SRC}+g' config/index.js"
docker exec -i ${CONTAINER_IMC} sh -c "sed -i 's+datasrc:basic.mongodb.*+datasrc:basic.mongodb.${SERVER_SRC}+g' config/index.js"
#! /bin/bash
echo "Step1: Change mongodb source"
echo "푸시할 서버를 지정하면 mongodb 소스로케이션 config파일을 자동 수정함.
ipa=$(hostname)
case "$ipa" in
imcserver) sed -i 's+datasrc:basic.mongodb.local+datasrc:basic.mongodb.docean+g' config/index.js;;
namubuntu) sed -i 's+datasrc:basic.mongodb.local+datasrc:basic.mongodb.namubuntu+g' config/index.js;;
*) a="not registerd system!!";;
esac
echo "Step2: Create Volumes"
arr=("mongodbdata" "jsondata" "svrnode_modules")
for var in "${arr[@]}"
do
docker volume create $var
done
echo "Step3: docker-compose up"
docker-compose up --build -d
#! /bin/bash
USERNAME=$1
PASSWORD=$2
SERVER_OR_CLIENT=$3 # server/client/all
COMMIT_BEFORE_PUSH=$4 #true/false
# 1,2: push할 server id,pass,
# 3: push내용이 server, client, or both?
# 4: true: container의 수정한내용을 commit해서 image를 수정할 것인가?
# script example: sudo bash dockerpush.sh yknam ykn9080 server false
paramWarning() {
# warning if not input variables
if [ -z $USERNAME ]
then
echo "Error: missing parameter."
echo "sudo bash $0 yknam ykn9080"
exit 1
fi
}
paramWarning
#sudo -i
docker login --username=$USERNAME --password=$PASSWORD
if [ $SERVER_OR_CLIENT == "server" ] || [ $SERVER_OR_CLIENT == "all" ] ; then
if [ $COMMIT_BEFORE_PUSH = true ] ; then
echo "Committing imc1 and imcmongo1 before push"
docker commit imc1 yknam/imcserver:latest
docker commit imcmongo1 yknam/imcmongo:latest
fi
echo "Pushing imcserver and imcmongo to dockerhub"
docker push yknam/imcserver:latest
docker push yknam/imcmongo:latest
fi
if [ $SERVER_OR_CLIENT == "client" ] || [ $SERVER_OR_CLIENT == "all" ]; then
if [ $COMMIT_BEFORE_PUSH = true ] ; then
echo "Committing imcc1 before push"
docker commit imcc1 yknam/imcclient:latest
fi
echo "Pushing client to dockerhub"
docker push yknam/imcclient:latest
fi
#! /bin/bash
#arr=("clientdata" "clientdist" "clientimages" "clientnode_modules" "clientjs")
#ARR=("$@")
#ARR=(jsondata mongodbdata)
BACK_DIR=$1
SVR_OR_CLIENT=$2
shift
shift
ARR=("$@")
#server or client?
COMPOSE_DIR="imcclient"
CONTAINER_IMC="imcc1"
if [ $SVR_OR_CLIENT == "server" ]
then
COMPOSE_DIR="imcserver"
CONTAINER_IMC="imc1"
fi
#which host?
SERVER_SRC="namubuntu"
if [ $(hostname)=="imcserver" ]
then
SERVER_SRC="docean"
fi
# echo $BACK_DIR ${ARR[@]}
echo "Remote Exec1) Volume creation & data mapping"
for var in "${ARR[@]}"
do
#create volume
docker volume create $var
#volume directory clear
rm -rf /var/lib/docker/volumes/$var/_data/*
#extract vol data & copy to vol directory
tar xvf ~/docker-compose/${BACK_DIR}/$var.tar -C /var/lib/docker/volumes/$var/_data
# move vdir up one level and del vdir
cd /var/lib/docker/volumes/$var/_data/vdir
mv ./* ../
rm -rf /var/lib/docker/volumes/$var/_data/vdir
done
echo "Remote Exec2) pull images from Dockerhub"
docker login --username=<username> --password=<password>
cd ~/docker-compose/${COMPOSE_DIR}
docker-compose up -d
echo "Remote Exec3) Changing configuration of container"
#echo ${CONTAINER_IMC} ${SERVER_SRC}
#docker exec -i ${CONTAINER_IMC} sh -c "ls"
docker exec -i ${CONTAINER_IMC} sh -c "sed -i 's+const current_url=server_url.*+sconst current_url=server_url.${SERVER_SRC}+g' config/index.js"
docker exec -i ${CONTAINER_IMC} sh -c "sed -i 's+datasrc:basic.mongodb.*+datasrc:basic.mongodb.${SERVER_SRC}+g' config/index.js"