Moodleのインストールをバックアップするために書かれたbashスクリプトがあります。うまくいき、バックアップをテストしてみましたが、問題が発生しました。バックアップするたびにパスワードを入力する必要があるため、単にバックアップを自動化するタスクを実行するのでは sudo
なく、直接入力する必要があります。cron
cron
今私はこれが私が知らないものに関連しているか、SSHキーを使用することに関連していると思います。どちらにしてもバックアップを自動化したいです。
#!/bin/bash
# Turn on Maintance mode and log it...
logger "BEGIN Turning on maintance mode in moodle"
lynx -cmd_script=./backupScripts/turnOnMaintMode http://moodle.leeand00domain.local
logger "END Turning on maintance mode complete."
logger "BEGIN Creating Backup Directory"
export bkdir=$(date +"%Y-%m-%d")
mkdir $bkdir
cd $bkdir
logger "END Creating Backup Directory"
#Get a backup copy of the database
logger "BEGIN Backing up the Moodle Database"
mysqldump -u moodleuser --password=XXXXX -C -Q -e --create-options moodle > moodle-database.sql
logger "END Backing up the Moodle Database"
#Get a backup copy of moodle data
logger "BEGIN Backing up moodledata"
tar -cvzf moodledata.tar.gz --exclude='/var/moodledata/cache' --exclude='/var/moodledata/lang' --exclude='/var/moodledata/sessions' --exclude='/var/moodledata/temp' /var/moodledata && tar -cvzf moodleinstallation.tar.gz /var/www
logger "END Backing up moodledata"
cd ..
tar -cvzf $bkdir.tar.gz $bkdir
# Turn off Maintance mode and log it...
logger "BEGIN Turning off maintance mode in moodle"
lynx -cmd_script=./backupScripts/turnOffMaintMode http://moodle.leeand00domain.local
logger "END Turning off maintance mode in moodle complete."
ベストアンサー1
私は次のいずれかを行います。
方法#1 - システムクローン
実際のユーザーのcrontabエントリではなく、システムのcronにバックアップスクリプトを追加します。ほとんどのシステムは、/etc
次のディレクトリ構造を保持します。
$ ls -1d /etc/cron.*
/etc/cron.d
/etc/cron.daily
/etc/cron.deny
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
適切なディレクトリに必要な頻度で実行したいスクリプトを配置するだけです。
方法 #2 - パスワードのないsudo
/etc/sudoers
別の方法は、編集コマンドを使用してファイルに項目を設定することですvisudo
。このエントリは、この特定のスクリプトに対するユーザーのcrontabエントリに、パスワードなしでアクセスする権限を付与します。 crontabのエントリは次のとおりです。
$ sudo ...your script...
ファイルのエントリは/etc/sudoers
次のとおりです。
user ALL=(root) NOPASSWD: /home/user/cronscript.sh