사용하려는 백업 스크립트가 있는데 문제가 발생했습니다.
#Setup Variables
DOMAIN=domainexample.com
FILENAME=${DOMAIN}.$(date +%Y%m%d)
DBSERVER=localhost
DATABASE=databasename
USER=mysqluser
PASS=mysqlpass
BACKUPSERVER=user@backupserverinfo:~
BACKUPSERVERPORT=22
# Dump Database for Backup
mysqldump --opt --user=${USER} --password=${PASS} ${DATABASE} > ${FILENAME}.sql
# GZIP the Database File
gzip -f ${FILENAME}.sql
# Make a TEMP DIR and Move the Backup to it for archival
mkdir /var/www/${DOMAIN}/db
cp $FILE.sql.gz /var/www/${DOMAIN}/db
# TAR & GZ domain directory to preserve database, files and images
tar -czvf ~/${FILENAME}.website.tar.gz /var/www/${DOMAIN}
# Remove TEMP DB DIR and Backup
rm -rf /var/www/${DOMAIN}/db
# Transfer backups to backup server
scp -P ${BACKUPSERVERPORT} ${FILENAME}.sql.gz ${FILENAME}.website.tar.gz ${BACKUPSERVER}
# Clear out old backups
rm -rf ~/backups/*
# Move files to temp directory
mv ${FILENAME}.sql.gz ~/backups
mv ${FILENAME}.website.tar.gz ~/backups
# Completed Messages
echo Completed!
내가 겪고 있는 문제는 3GB의 RAM이 있고 하드 드라이브에서 사용 가능한 사이트 공간의 10배가 넘는 경우에도 스크립트가 서버와 충돌한다는 것입니다. 메모리 부족을 나타내는 httpd 오류가 발생하기 시작했습니다. 나는 현지 시간으로 오전 4시에 이 스크립트를 실행했는데 디렉토리 크기는 이미지와 모두 5GB에 불과했습니다. 내가 뭘 잘못했나요?
gzip 압축 후 실제 데이터베이스 파일은 4.5MB에 불과합니다. 이미지가 포함된 디렉토리는 약 5GB여야 하지만 파일은 400K에 불과한 경우가 많습니다. 왜 이런 일이 발생하는지 모르겠습니다.
df -h 내가 명령을 실행하기 전에는
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 73G 11G 58G 16% /
tmpfs 1.5G 0 1.5G 0% /dev/shm
/dev/vda1 477M 194M 258M 43% /boot
디렉토리의 gzip 압축 중
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 73G 15G 55G 21% /
tmpfs 1.5G 0 1.5G 0% /dev/shm
/dev/vda1 477M 194M 258M 43% /boot
free-h는
total used free shared buffers cached
Mem: 2.8G 2.0G 886M 268K 70M 825M
-/+ buffers/cache: 1.1G 1.7G
Swap: 1.0G 0B 1.0G
gzip 중
total used free shared buffers cached
Mem: 2.8G 2.7G 74M 276K 42M 1.7G
-/+ buffers/cache: 1.0G 1.8G
Swap: 1.0G 132K 1.0G
저장 공간이 부족하지 않았고 사용 가능한 메모리가 74M 아래로 떨어진 적이 없습니다.