Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
BeitragVerfasst: 21 Apr 2012, 16:21 
Offline
Novize

Registriert: 14 Apr 2012, 16:48
Beiträge: 15
Wohnort: Kuala Lumpur, Malaysia
Jetzt habe ich doch noch eine Frage...

Ich bin dabei das Skript etwas aufzuhübschen, sodass mir im Terminal für jedes Verzeichnis angezeigt wird, ob rsync geklappt hat oder nicht...
So sollte die Ausgabe im Terminal ungefähr sein:

Ordner 1 [ DONE ]
Ordner 2 [ DONE ]
Ordner 3 [ ERROR ]
Ordner 4 [ DONE ]

Wie kann ich nun den rsync-Befehl auf erfolgreich oder gescheitert überprüfen? Gibt es da eine Möglichkeit? Rsync wird momentan folgendermaßen aufgerufen:



1
2
3
4
5
def createBackup
FOLDERS.each do |folder|
system("rsync #{RSYNC_OPTIONS} " + folder + " #{SSH_USER}@#{SSH_SERVER}:#{BACKUP_DIR}")
end
end


Über einen Tipp, wie ich rsync überprüfen kann, wäre ich sehr dankbar!!

Danke und Grüße!!

_________________
If Not Program.IsWorking Then Code.Debug Else Code.DoNotTouch


Nach oben
 Profil  
 
BeitragVerfasst: 21 Apr 2012, 22:50 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4847
Wohnort: RLP
$? ist der Exit-Status des letzten aufgerufenen Subprozesses. Ist der 0, war er erfolgreich, ists was anderes, wars ein Fehler (und wenn du weitergehen willst, kannst du schauen, für welchen Fehler die Zahl jetzt stand). Die Zahl ist vom Programmierer des Subprozesses gewählt, es gibt also keine globale Tabelle, was was bedeutet :).



1
2
3
4
`bash -c "exit 0"`
$? #=> #<Process::Status: pid 674 exit 0>
`bash -c "exit 100"`
$? #=> #<Process::Status: pid 675 exit 100>


Nach oben
 Profil  
 
BeitragVerfasst: 22 Apr 2012, 06:05 
Offline
Novize

Registriert: 14 Apr 2012, 16:48
Beiträge: 15
Wohnort: Kuala Lumpur, Malaysia
Vielen Dank...

Habe es mit deinem Vorschlag lösen können. Allerdings geht's sogar noch einfacher, wie ich grade herausgefunden habe...



1
2
3
4
5
6
7
8
9
FOLDERS.each do |folder| 
status = system("rsync #{RSYNC_OPTIONS} " + folder + " #{SSH_USER}@#{SSH_SERVER}:#{BACKUP_DIR}")

if (status)
rows << [folder, " DONE ".color(:green)]
else
rows << [folder, "ERROR".color(:red)]
end
end


Muss sagen, so langsam gefällt mir Ruby immer besser ;-)

Vielen Dank nochmals!!

_________________
If Not Program.IsWorking Then Code.Debug Else Code.DoNotTouch


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: