2017-08-12 28 views
0

我想運行rdiff-backup,然後切換運行的raspberrypi。 我使用下面的腳本:bash腳本調用rdiff-backup永不結束

#!/bin/sh 

date > /home/mik/rdiff-backup.log 
echo "rsync start" >> /home/mik/rdiff-backup.log 
rdiff-backup -v5 --print-statistics [email protected]::/srv/backup /srv/datenserverBackup/backup >> /home/mik/rdiff-backup.log 2>&1 

sync 
date >> /home/mik/rdiff-backup.log 
echo "rdiff-backup end" >> /home/mik/rdiff-backup.log 
df -h >> /home/mik/rdiff-backup.log 

sync 
halt 

日誌文件看起來不錯(用於rdiff進行備份部分):

Sat 12 Aug 08:20:59 UTC 2017 
rsync start 
Unable to import win32security module. Windows ACLs 
not supported by filesystem at /srv/backup 
escape_dos_devices not required by filesystem at /srv/backup 
Warning: name offlinebackup not found on system, dropping ACL entry. 
Further ACL entries dropped with this name will not trigger further warnings 
Using rdiff-backup version 1.2.8 
Executing ssh -C [email protected] rdiff-backup --server 
----------------------------------------------------------------- 
Detected abilities for source (read only) file system: 
    Access control lists       On 
    Extended attributes       On 
    Windows access control lists     Off 
    Case sensitivity        On 
    Escape DOS devices       Off 
    Escape trailing spaces      Off 
    Mac OS X style resource forks    Off 
    Mac OS X Finder information     Off 
----------------------------------------------------------------- 
Unable to import win32security module. Windows ACLs 
not supported by filesystem at /srv/datenserverBackup/backup/rdiff-backup-data/rdiff-backup.tmp.0 
escape_dos_devices not required by filesystem at /srv/datenserverBackup/backup/rdiff-backup-data/rdiff-backup.tmp.0 
----------------------------------------------------------------- 
Detected abilities for destination (read/write) file system: 
    Ownership changing       On 
    Hard linking         On 
    fsync() directories       On 
    Directory inc permissions     On 
    High-bit permissions       On 
    Symlink permissions       Off 
    Extended filenames       On 
    Windows reserved filenames     Off 
    Access control lists       On 
    Extended attributes       On 
    Windows access control lists     Off 
    Case sensitivity        On 
    Escape DOS devices       Off 
    Escape trailing spaces      Off 
    Mac OS X style resource forks    Off 
    Mac OS X Finder information     Off 
----------------------------------------------------------------- 
Backup: must_escape_dos_devices = 0 
Starting increment operation /srv/backup to /srv/datenserverBackup/backup 
Processing changed file . 
Incrementing mirror file /srv/datenserverBackup/backup 
Processing changed file abc 
Incrementing mirror file /srv/datenserverBackup/backup/abc 
Processing changed file abc/def 
Incrementing mirror file /srv/datenserverBackup/backup/abc/def 
Processing changed file abc/def/testfile.dxf 
Incrementing mirror file /srv/datenserverBackup/backup/abc/def/testfile.dxf 
--------------[ Session statistics ]-------------- 
StartTime 1502526061.00 (Sat Aug 12 08:21:01 2017) 
EndTime 1502527913.72 (Sat Aug 12 08:51:53 2017) 
ElapsedTime 1852.72 (30 minutes 52.72 seconds) 
SourceFiles 151099 
SourceFileSize 386321558216 (360 GB) 
MirrorFiles 151097 
MirrorFileSize 386321447731 (360 GB) 
NewFiles 2 
NewFileSize 110485 (108 KB) 
DeletedFiles 0 
DeletedFileSize 0 (0 bytes) 
ChangedFiles 1 
ChangedSourceSize 0 (0 bytes) 
ChangedMirrorSize 0 (0 bytes) 
IncrementFiles 4 
IncrementFileSize 0 (0 bytes) 
TotalDestinationSizeChange 110485 (108 KB) 
Errors 0 
-------------------------------------------------- 

備份工作,但隨後的腳本結束就在那裏。 rdiff-backup.log包含rdiff-backup的完整報告。但既不是「rdiff-backup結束」行,也不是「df -h」的輸出。

我該如何讓它跑到最後?

謝謝您的回答

回答

0

我終於找到了一個解決辦法,能解決我的問題。

從/etc/init.d啓動後調用的sciprt正在調用另一個執行實際工作(即備份我的數據並寫入日誌文件)的腳本作爲後臺任務。

/etc/init.d/CallAfterBoot.sh

#!/bin/sh 
sleep 30 
/home/me/DoBackup.sh &   # '&' starts the script in background 

/home/me/DoBackup.sh是我貼上面這是目前乳寧正確的腳本。

現在以相同用戶身份運行的相同腳本的行爲不同。但是,在某個地方肯定會出現一些錯誤,但現在它對我有用。