해결된 질문
23.02.22 19:18 작성
·
453
·
수정됨
0
안녕하세요 2-5강에서 백업 쉘스크립트 강의를 듣고 스크립트를 작성했는데 실행해보니 아무일도 일어나지 않고 대기만 되는 상황이에요 ㅜㅜ 디버깅 옵션을 주고 실행하니
이곳에서 멈추는데 제가 어떤걸 잘못한걸까요? ㅠㅠ 아래는 작성한 스크립트 입니다
#!/bin/bash -x
## 변수 설정
HOST="$(/usr/bin/hostname)"
LOG="/tmp/backup.log"
PUSH="/vagrant/SHELL/backup/telegram.sh"
DATE="$(/bin/date +%Y.%m.%d)"
BAK_LIST="/etc/nginx /usr/share/nginx/html/www" #백업할 파일
BAK_PATH="/mnt/BACKUP/${HOST}" #백업파일 저장할 디렉토리
BAK_FILE="${BAK_PATH}/${DATE}_${HOST}.tgz" #백업파일명
## 스토리지에 마운트
/usr/bin/mount /mnt
## 로그파일 생성
/usr/bin/touch "${LOG}"
## 백업 디렉토리 확인
if [ -e "${BAK_PATH}" ]
then
/bin/echo "백업 디렉토리가 있어요!"
else
/usr/bin/mkdir -p "${BAK_PATH}"
fi
## ----로그기록 시작
{
/bin/echo
/bin/echo "=== backup start :"
/bin/date
/bin/echo
## 백업
/usr/bin/tar czpPf "${BAK_FILE}" ${BAK_LIST}
## 백업파일 정보
NAME="$(/usr/bin/ls -al "${BAK_FILE}" | awk '{print $9}')"
SIZE="$(/usr/bin/ls -al "${BAK_FILE}" | awk '{print $5}')"
/bin/echo "=== backup info: "
/bin/echo " | filename: ${NAME}"
/bin/echo " | filesize: ${SIZE}Byte"
/bin/echo
/bin/echo
/bin/echo "=== backup success :"
/bin/date
/bin/echo
}>|"${LOG}"
## ----로그 기록 끝
## 스토리지에 언마운트
/usr/bin/umount /mnt
## 텔레그램으로 백업 로그 전송
"${PUSH}" "${HOST}" "$(/usr/bin/cat "${LOG}")"
## 로그 파일 삭제
/usr/bin/rm -f "${LOG}"
답변 2
1
2023. 02. 23. 15:26
감사합니다 해결하였어요! vbox의 네트워크 대역 이슈때문에 기존 서버들의 ip주소를 192.x.x.x 대역으로 모두 바꾸었는데 cent3 /etc/exports 파일의 ip를 수정하지 않아서 발생한 오류였습니다! 항상 강의 잘 듣고 있습니다 감사해요
0
2023. 02. 23. 10:27
하륜님 안녕하세요.
보내주신 로그를 보니 mount /mnt 에서 멈추네요.
두 가지를 확인해 보시면 될 것 같습니다.
nfs 서버 설정이 잘 되어있는 지 확인해주세요.
nfs마운트 설정이 /etc/fstab에 있는지 확인하고 없으면 만들어주세요.
2-5강좌의 12:05에 설정이 나옵니다.
nfs설정이 잘 되었는 지 확인하는 방법은 아래와 같습니다.
mount /mnt 로 마운트가 잘 되는지 확인
마운트 상태는 df 명령어로 확인
umount /mnt 로 마운트가 해제되는 것을 확인
언마운트 상태는 df 명령어로 확인
지금 작성하신 web_backup.sh 를 cent2에서 실행하신 것 같은데 웹서버인 cent1에서 실행을 해 주세요.
set -euo pipefail 을 활용하는 방법도 강좌에서 설명하고 있으니 차례대로 차근차근 따라해 보시면 문제없을 것 같습니다.
또 안되거나 모르는 부분이 있으면 언제든지 질문 남겨주세요.
응원합니다! 화이팅!!