모든 중요한 폴더의 .tar.gz를 생성하고 이를 Google 드라이브에 업로드하는 간단한 백업 스크립트를 만들었습니다.클론.
스크립트를 수동으로 실행하면 모든 것이 잘 작동합니다. 그러나 anacron을 실행하면 실패하는 것 같습니다.
나는 anacron -fnd
모든 것이 제대로 실행되는지 테스트하기 위해 즉시 anacron을 실행하는 경우가 많습니다.
다음은 로그 파일 2022/11/28 23:58:03에 표시되는 오류입니다.
참고: 구성 파일 "/root/.config/rclone/rclone.conf"를 찾을 수 없습니다. 기본값
2022/11/28 23:58을 사용합니다. :03 'linuxbackuprclone:Linux-Backup'에 대한 파일 시스템을 생성할 수 없습니다: 구성 파일에 섹션이 없습니다.
linuxbackuprclone은 rclone에 있는 내 리모컨의 이름입니다.
Linux-Backup은 Google 드라이브에 있는 폴더의 이름입니다.
이것은 내 백업 스크립트이며 이름은 다음과 같습니다.지원, 누워/home/paramv/Bash 스크립트및 명명된 백업
#!/bin/bash
set -e
backupDirPath="/home/paramv/Linux-Backup"
if [ ! -d $backupDirPath ]; then
mkdir $backupDirPath
fi
if [ ! -d "/home/paramv/Bash-Script/Backup-Log" ]; then
mkdir Backup-Log
fi
# Create a log file named after the date the backup was created
logFile="/home/paramv/Bash-Script/Backup-Log/$(date).log"
logFile=${logFile// /_}
touch $logFile
# Create tar of dirs to backup
echo "Creating backup.tar.gz" >> $logFile
# sudo tar -zcf /home/paramv/Linux-Backup/backup.tar.gz -P /home/paramv/Documents/ &>> $logFile
if [ $? != 0 ]; then
echo "Failed to create backup.tar.gz. Error code = $?" &>> $logFile
exit 1
else
echo "Completed creating backup.tar.gz" >> $logFile
fi
# Upload local backup file to the cloud
echo "Uploading backup.tar.gz to Google Drive" >> $logFile
/usr/bin/rclone copy --update --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 "/home/paramv/Linux-Backup/backup.tar.gz" "linuxbackuprclone:Linux-Backup" &>> $logFile
if [ $? != 0 ]; then
echo "Failed to upload backup.tar.gz to Google Drive. Error code = $?" &>> $logFile
exit 1
else
echo "Uploaded backup.tar.gz to Google Drive" >> $logFile
fi
exit
아래는 내 anacron 스크립트입니다./etc/cron.weekly, 이름은 prsnlbackup
#!/bin/sh
set -e
exec /home/paramv/Bash-Script/backup
exit
아래는 실행 결과입니다 rclone config
.
Current remotes:
Name Type
==== ====
linuxbackuprclone drive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>
이 내 꺼야rclone.conf좋다. 위치해있습니다/home/paramv/.config/rclone
[linuxbackuprclone]
type = drive
scope = drive
token = {"omitted to make it readable"}
team_drive =
저는 Ubuntu 22.04.1 LTS를 실행하고 있습니다.
어떤 도움이라도 대단히 감사하겠습니다.
답변1
나는 당신이 스크립트를 수동으로 실행하고 있다고 생각하지만 스크립트를 /etc/cron.weekly/에 넣으면 루트로 실행되도록 설정하고 있습니다.
스크립트를 직접 실행하려면 자신의 crontab에 추가하면 됩니다. su
또는 를 사용하지 마십시오 sudo
.
crontab -e # Edit my own crontab
...
여기에는 분(0-59), 시간(0-23), 일(1-31), 월(1-12) 및 지수(0-6,0=일) 등 6개의 표준 필드가 있습니다. 매주만 실행되도록 하려면 "요일" 값 중 하나를 선택하세요. 예를 들어 매주 일요일 오전 2시에 실행되어 backup.log
홈 디렉터리의 로그 파일에 출력을 기록합니다.
0 2 * * 0 Bash-Script/backup > backup.log 2>&1
답변2
해결책은 실행한 다음 sudo -i
복사하는 rclone.conf
것 입니다./home/paramv/.config/rclone
/root/.config/rclone