私は小さな Backupscript を実行しようとしていますが、おそらくとても簡単なことで立ち往生していますが、それを機能させることができません。
バックアップの各部分 (それぞれが個別のスクリプトで呼び出されます) の後に echo "backup 1 started" / echo "backup 1 ended" を使用します。
ここに私のテストスクリプトがあります
#!/bin/bash
# Backupcountervariable
bc=1
# Startbackup
startecho="echo $(date +%F_%T) | dobackup.sh | Backup "$bc" started!"
# Endbackup
endecho="echo $(date +%F_%T) | dobackup.sh | Backup "$bc" ended!"
echo $bc
$startecho
$endecho
bc=$(($bc+1))
echo $bc
$startecho
$endecho
変数 bc はその間に更新されますが、それは確かです。私の問題は、$startecho
開始$endecho
されたときに更新されないことだと思います$bc
。
変数内の変数を更新する方法のヒントはありますか?
編集:
私がここで何をしているのか誤解を招いて申し訳ありません。ここでは、完全なバックアップ スクリプトを確認できます。個々のバックアップ スクリプトを呼び出すだけで、出力がログ ファイルに書き込まれます。したがって、5 つのスクリプトではなく、cron 経由でこのスクリプトを実行するだけです。
#!/bin/bash
# Backupscripte ausfuehren 0.5
# Created: 2013/05/30 22:00
# Updated: 2013/06/05 02:31
# 0.5: Log verbessert, teamspeak hinzugefuegt, backupcounter
# 0.6: funktionen eingebaut, uebersichtlichkeit verbessert
### Variablendeklaration
# Log Variable definieren
logfile="/var/log/dobackup.log"
# Backupcountervariable
bc=1
# Backupcounterincrement
function bci() { bc=$((bc+1)) ; }
# Startbackup
function startecho() { echo "$(date +%F_%T) | dobackup.sh | Backup $bc gestartet!" >>$logfile ; }
# Endbackup
function endecho() { echo "$(date +%F_%T) | dobackup.sh | Backup $bc beendet!" >>$logfile ; }
# Start des Backups Ausgeben
echo "----------------------------------------------------------------" >>$logfile
echo "$(date +%F_%T) | dobackup.sh | FULL BACKUP GESTARTET!" >>$logfile
#### /var/www Backup
# Start Backup ausgeben
startecho
# Backupscript ausfuehren
sh /root/varwwwbackup.sh >>$logfile
# Ende Backup ausgeben
endecho
# Increment Backupcounter
bci
#### /var/customers Backup
# Start Backup ausgeben
startecho
# Backupscript ausfuehren
sh /root/customersbackup.sh >>$logfile
# Ende Backup ausgeben
endecho
# Increment Backupcounter
bci
#### Mysqldump Backup
# Start Backup ausgeben
startecho
# Backupscript ausfuehren
sh /root/mysqlbackup.sh >>$logfile
# Ende Backup ausgeben
endecho
# Increment Backupcounter
bci
### TS3 Backup
# Start Backup ausgeben
startecho
# Backupscript ausfuehren
sh /root/tsbackup.sh >>$logfile
# Ende Backup ausgeben
endecho
# Increment Backupcounter
bci
# Cleanup Backup FTP, remove files older then 30 days
echo "$(date +%F_%T) | dobackup.sh | Cleanup fuer den Backup FTP Server begonnen..." >>$logfile
#sh /root/cleanbackup.sh >>$logfile
echo "$(date +%F_%T) | dobackup.sh | Cleanup fuer den Backup FTP Server abgeschlossen!" >>$logfile
# Ende des Backups Ausgeben
echo "$(date +%F_%T) | dobackup.sh | FULL BACKUP BEENDET!" >>$logfile
したがって、私のログは次のようになります。
----------------------------------------------------------------
2013-06-05_04:00:01 | dobackup.sh | FULL BACKUP GESTARTET!
2013-06-05_04:00:01 | dobackup.sh | Backup 1 gestartet!
2013-06-05_04:00:01 | Backupscript fuer /var/www/ gestartet!
2013-06-05_04:00:01 | Verzeichnis gewechselt! Beginne damit das Verzeichnis einzupacken...
2013-06-05_04:00:01 | Verzeichnis eingepackt! Beginne damit das Verzeichnis auf den FTP Server zu kopieren...
2013-06-05_04:00:01 | Backup erfolgreich auf den FTP Server verschoben! Temporaere Dateien werden nun geloescht...
2013-06-05_04:00:01 | Temporaere Dateien geloescht!
2013-06-05_04:00:01 | Backupscript fuer /var/www/ abgeschlossen!
2013-06-05_04:00:01 | dobackup.sh | Backup 1 beendet!
2013-06-05_04:00:01 | dobackup.sh | Backup 2 gestartet!
2013-06-05_04:00:01 | Backupscript fuer /var/customers/ gestartet!
2013-06-05_04:00:01 | Verzeichnis gewechselt! Beginne damit das Verzeichnis einzupacken...
2013-06-05_04:01:16 | Verzeichnis eingepackt! Beginne damit das Verzeichnis auf den FTP Server zu kopieren...
2013-06-05_04:04:56 | Backup erfolgreich auf den FTP Server verschoben! Temporaere Dateien werden nun geloescht...
2013-06-05_04:04:56 | Temporaere Dateien geloescht!
2013-06-05_04:04:56 | Backupscript fuer /var/customers/ abgeschlossen!
2013-06-05_04:04:56 | dobackup.sh | Backup 2 beendet!
2013-06-05_04:04:56 | dobackup.sh | Backup 3 gestartet!
2013-06-05_04:04:56 | Backupscript fuer mysqldump gestartet!
2013-06-05_04:04:56 | Verzeichnis gewechselt! Beginne mit dem mysqldump...
2013-06-05_04:04:56 | Mysqldump ausgefuehrt! Beginne mit dem einpacken des mysqldumps...
2013-06-05_04:04:56 | SQL Backup eingepackt! Beginne damit das Backup auf den FTP Server zu kopieren...
2013-06-05_04:04:56 | Backup auf FTP Server veschoben! Temporaere Files werden entfernt...
2013-06-05_04:04:56 | Temporaere Files wurden entfernt!
2013-06-05_04:04:56 | Backupscript fuer mysqldump abgeschlossen!
2013-06-05_04:04:56 | dobackup.sh | Backup 3 beendet!
2013-06-05_04:04:56 | dobackup.sh | Backup 4 gestartet!
2013-06-05_04:04:56 | Backupscript fuer /home/ts3/ gestartet!
2013-06-05_04:04:56 | Verzeichnis gewechselt! Beginne damit das Verzeichnis einzupacken...
2013-06-05_04:08:47 | Verzeichnis eingepackt! Beginne damit das Verzeichnis auf den FTP Server zu kopieren...
2013-06-05_04:17:08 | Backup erfolgreich auf den FTP Server verschoben! Temporaere Dateien werden nun geloescht...
2013-06-05_04:17:08 | Temporaere Dateien geloescht!
2013-06-05_04:17:08 | Backupscript fuer /home/ts3/ abgeschlossen!
2013-06-05_04:17:08 | dobackup.sh | Backup 4 beendet!
2013-06-05_04:17:08 | dobackup.sh | Cleanup fuer den Backup FTP Server begonnen...
2013-06-05_04:17:08 | dobackup.sh | Cleanup fuer den Backup FTP Server abgeschlossen!
2013-06-05_04:17:08 | dobackup.sh | FULL BACKUP BEENDET!
現在のところ、dobackup.sh だけが "| dobackup.sh |" を実行します。出力...
こんにちはデビッド