일부 파일을 백업하기 위해 rsync를 실행하는 스크립트가 있습니다. rsync가 완료되면 스크립트는 결과가 포함된 이메일을 나에게 보냅니다.
rsync 시간이 30분~1시간 미만이면 문제 없이 메일이 전송되지만, rsync가 더 오래 걸리면 메일이 전송되지 않습니다.
Rsync는 3~4시간 이상 걸리지 않습니다(최악의 경우: 새 백업 정리). 이 스크립트는 매일 오전 2시에 실행되도록 프로그래밍되어 있습니다. 따라서 프로세스가 겹치는 문제가 될 수 없습니다.
특정 시간이 지나면 스크립트가 종료되는 것처럼 명령을 완료하는 데 너무 오랜 시간이 걸리고 명령을 계속 실행하지 않는 경우입니다.
중복된 질문이라면 죄송합니다. 온라인에서 관련 정보를 찾지 못했습니다.
매우 감사합니다!
편집: Linux Mint 20을 실행하는 시스템
편집 2: 이 문제는 Ubuntu Server에서도 발생합니다. 스크립트 파일은 sudoers에 있으므로 비밀번호 없이 sudo로 실행할 수 있습니다.
편집 3: 스크립트 코드:
#!/bin/bash
script_path="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
now=$(date +$1)
path="/media/backups/"$now
log_file="/media/backups/logs/"$(date +"%Y%m%d_%H%M%S")
log_folder=$script_path"/logs"
if [ ! -d $log_folder ]; then
mkdir -p $log_folder
fi
{
echo ""
echo ""
date +"%d %m %Y - %H %M %S"
echo ""
echo ""
if [[ ! -d $path ]]; then
sudo mkdir $path
fi
sudo rsync -avprh --delete /media/disk/ $path
sudo rsync -avprh --delete /media/disk2 $path"/disk2/"
sudo /usr/bin/touch $path
} > $log_file 2>&1
if grep -i -q "error" $log_file; then
/usr/bin/php /var/www/email.php "[email protected]" "Backup ERROR" "<pre>$(<$log_file)</pre>"
else
/usr/bin/php /var/www/email.php "[email protected]" "Backup OK" "<pre>$(<$log_file)</pre>"
fi