Δημοσιεύτηκε: 25 Μάιος 2012, 23:59
evolgen έγραψε:Έχω γράψει ένα script σε bash, το οποίο κατεβάζει βάσεις δεδομένων (ακόμα και συμπιεσμένες φτάνουν τα 10 Gigabytes). Αυτό το script μπορεί να αποτύχει να εκτελεστεί σωστά σε διάφορα σημεία, γιατί μπορεί να τύχει την ώρα που κατεβάζω μια από τις βάσεις με το wget, να ανεβεί στο server η νεότερη έκδοσή της και να αποτύχει το κατέβασμα. Οι βάσεις αυτές ανανεώνονται κάθε μέρα σε μη αυστηρά καθορισμένη στιγμή.
Αυτό που θα ήθελα είναι το script να ξανακαλεί τον εαυτό του, σε όποιο σημείο και αν αποτύχει, από το πρώτο βήμα ως και το τελευταίο. Πώς μπορώ να το κάνω αυτό;
Μπορείς να χρησιμοποιήσεις συναρτήσεις στο Bash ώστε μια συνάρτηση να παρακολουθεί τη λήψη, και αν συμβεί κάτι, να προσπαθεί να επαναλάβει τη λήψη.
Δηλαδή, θα έχεις μια συνάρτηση «download_file()» που θα καλείται για να κάνει τη λήψη. Και μόλις ολοκληρωθεί η συνάρτηση, η καλούσα θα δει αν το αρχείο είναι εντάξει ή όχι (οπότε τότε θα επαναλαμβάνει η λήψη).
Γενικά, είναι πιο εύκολο να κάνεις μια τέτοια δουλειά με π.χ. Python. Μπορείς να διαβάζεις την ημερομηνία του αρχείου, και να διαπιστώνεις αν ένα αρχείο έχει αλλάξει. Ρώτησε αν θέλεις βοήθεια με Python.