anacron操作中にsudoでrcloneを実行すると、バックアップは失敗します。

anacron操作中にsudoでrcloneを実行すると、バックアップは失敗します。

すべての重要なフォルダの.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

関連情報