Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

DeltaLover, χωρίς ίχνος παρεξήγησης αλλά μόνο τις μετακλάσεις και τα descriptors ξέχασες... :-D. Δηλαδή decorator (με arguments) σε functions για να πιάνουν ή οχι exceptions σε script που στέλνει e-mail;

 

Οπως ειπα και παραπανω, και το script ειναι μια καλη λυση, που την ακολουθουν εκατομύρια admins  Απλα εγραψα το σκιπτακι αυτο σαν εναλλακτικη λυση που ισως κανει το monitoring process πιο ευκολο..  Γενικα μιλωντας χρησιμοποιωντας python η perl αντι για bash κανει πιο ευκολο implementation, καθως κανει code reuse πιο ευκολο ενω μας δινει ολες τις δυνατοτητες του dynamic programming κατι που ασφαλως δεν ειναι δυνατο σε ενα απλο bash script....

 

Οσο για τον decorator, μπορει ευκολα να γινει μερος ενος API που θα χρησιμοποιουμε  accross the board.

Δημοσ.

Φαντάζομαι ότι το είχε έτοιμο :P. Ένα άλλο ωραίο κόλπο για να χειρίζεσαι exceptions είναι με context managers

http://dietbuddha.blogspot.gr/2012/12/52python-encapsulating-exceptions-with.html

 

Πχ αν έχεις να κάνεις με βάσεις δεδομένων μετά μπορείς να γράψεις κάτι τέτοιο

from contextlib import contextmanager

class Database(object):
    def __init__(...):
        # ...

@contextmanager
def transaction():
    db = Database()
    db.begin_transaction()
    try:
        yield db
    except OperationalError as e:
        log.exception("Something went wrong. Rolling back")
        db.rollback()
    else:
        log.debug("Everything went fine. Committing.")
        db.commit()

with transaction() as db:
    db.insert_data()

(το έγραψα από μνήμης, δεν το έχω τεστάρει οπότε μη βαράτε αν έχει κανά λάθος)

Δημοσ.

#!/bin/bash

wget http://checkip.dyndns.org/ -q -O - | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' > /tmp/ip && echo overwrite ip

ip1=$(cat /tmp/ip)
ip2=$(cat /tmp/ip)

if [ "$ip1" = "$ip2" ] ; then
        echo equal
else
        echo not equal
fi

ip2='tha paro mia psarovarka'

if [ "$ip1" = "$ip2" ] ; then
        echo equal
else
        echo not equal
fi

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...