すべての重要なフォルダの.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/に入れるとrootとして実行されるように設定しています。
スクリプトを直接実行するには、自分の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