반응형
## vi backup.sh 참고
#!/bin/bash |
# 백업 디렉토리 경로 설정 |
BACKUP_DIR="/home/XXXadm/service/XXX/bin/backup" |
# 21일 이상 지난 백업 파일 삭제 |
echo "Deleting backup files older than 21 days..." |
find "$BACKUP_DIR" -type f -name "*.jar" -mtime +21 -exec rm -f {} \; |
echo "Old backup files deleted." |
# 백업할 JAR 파일의 경로 설정 (경로를 실제 JAR 파일 경로로 수정하세요) |
JAR_FILE="/home/XXXadm/service/XXX/bin/XXX-module.jar" |
# 현재 날짜와 시간을 포맷팅 (예: 2024-08-26_12-30-00) |
CURRENT_DATE=$(date +"%Y-%m-%d_%H-%M-%S") |
# 원본 파일명 추출 |
JAR_FILENAME=$(basename "$JAR_FILE") |
# 백업 파일명 설정 |
BACKUP_FILENAME="${JAR_FILENAME%.jar}_$CURRENT_DATE.jar" |
# 백업 디렉토리가 존재하지 않는 경우 생성 |
if [ ! -d "$BACKUP_DIR" ]; then |
echo "Backup directory does not exist. Creating directory." |
mkdir -p "$BACKUP_DIR" |
fi |
# JAR 파일을 백업 디렉토리로 복사하면서 파일명에 날짜 추가 |
if [ -f "$JAR_FILE" ]; then |
cp "$JAR_FILE" "$BACKUP_DIR/$BACKUP_FILENAME" |
echo "Backup completed: $JAR_FILE -> $BACKUP_DIR/$BACKUP_FILENAME" |
else |
echo "JAR file not found: $JAR_FILE" |
fi |
======================================
# 백업본 S3 버킷 업로드 |
echo "Uploading $BACKUP_FILENAME to S3..." |
aws s3 cp "$BACKUP_DIR/$BACKUP_FILENAME" "$S3_BUCKET/" |
if [ $? -eq 0 ]; then |
echo "Upload to S3 completed successfully: $S3_BUCKET/$BACKUP_FILENAME" |
else |
echo "Failed to upload $BACKUP_FILENAME to S3." |
fi |
## 참고
true 가 0인가요??
C++, java 등의 컴퓨터 언어에선 true=1, false=0 으로 사용하고 있잖아요.
쉘 스크립트 에서만 true = 0 인 건가요?
--------------------------------------------------------
말씀하신 것처럼 프로그래밍 언어에서는 1은 참이고, 0은 거짓으로 처리됩니다
반면, 리눅스 쉘에서는 명령의 종료 상태 값은 0을 참으로, 1을 거짓으로 처리하고 있습니다
쉘에서의 함수 종료 처리 또한 마찬가지죠. 정상(exit 0), 오류(exit 1)
=====================================
유닉스에서 $?의 의미
특수문자로 이루어진 $?의 의미는 무엇일까?
$의 경우 변수 선언했을 때 그 변수를 호출하는 특수문자이고
?의 경우 어느 한 문자를 가리키는 특수문자일터인데
뭔고 하니 $?의 의미는 이전의 상태를 나타내는 쉘스크립트에서 쓰이는 특수문자인듯
이건 설명 보다 예를 드는 것이 더 쉬운듯
간단한 쉘스크립트를 보면
----------------------
#!/usr/bin/ksh
ls -al
echo $?
==> 0 출력
ls -8
echo $?
==> 2 출력
-----------------------
위 쉘을 돌려보면
ls -al의 경우 정상출력이 되므로 첫번쨰 에코값은 0이 출력
아래의 경우 -8은 옵션에 없는 것이므로
0이 아닌 다른값 출력.
반응형
'[AWS-FRF] > EC2' 카테고리의 다른 글
[참고][AWS] Saving Plans 적용하기!! (18) | 2024.11.08 |
---|---|
[참고][AWS] Savings Plans 구매 방법!! (17) | 2024.11.07 |
[중요][AWS][BASTION 터널링] WinSCP 를 이용해 Linux 인스턴스로 파일 전송하기!! (55) | 2024.10.07 |
[중요][AWS] 유닉스에서 $?의 의미 !! (12) | 2024.09.25 |
[중요2][AWS][장애처리] EC2 루트/EBS볼륨 Attach 장애복구!! (11) | 2024.09.10 |
[중요][AWS][Linux] systemctl 명령어로 서비스 등록, 생성, 삭제!! (16) | 2024.08.30 |
[중요][AWS] Putty 자동로그인 설정 / GITLAB 터널링 설정!! (25) | 2024.08.26 |
[중요][AWS][JMeter] 서버의 성능을 JMeter로 테스트해보자 (+분산환경 테스팅, TPS) (92) | 2024.08.12 |
댓글