Bash: Check that string is IP

Assuming that we have a Bash script that accepts a parameter that is expected to be an IP Address, this article lists a couple of (practically useless) ways of verifying that input without using regular expressions, which is the sane thing to do. It is therefore an exercise in futility, but it helps with my chronic allergy to regular expressions.

Read More →

Έργα στο Public Domain από 1η Ιανουαρίου 2013

Από 1η Ιανουαρίου 2013, ελευθερώνονται ως Κοινό Κτήμα (Public Domain) όλα τα έργα δημιουργών που πέθαναν το 1942.

Η σύντομη λίστα των Ελλήνων δημιουργών συμπεριλαμβάνει:

Ποιητές - Λογοτέχνες

Ζωγράφοι - Γλύπτες


How to create a large MySQL database for tests

I wanted to create a fairly big MySQL database (~30GB on disk) for tests. I created a 'test' database, and a 'table2' table, with a 'content' field with datatype TEXT. Here's what I run from Bash:

[email protected]:~$ time for i in `seq 1 500000`; \
do echo $i of 500000; \
mysql -u root -D test -e \
"INSERT INTO table2 (content) VALUES ('`cat /var/log/messages | tr -d \'`')"; \

This took a few hours to finish, while creating data at a rate of 100MBytes per minute on my test server. The size of the database was 30GB.

This did the job but it was too slow. The better way to do it, would be to run the above command for far less repetitions, say 100000, to create a smaller table, then copy that table in the same database as many times as required for the entire database to reach the desirable size, like:

create table2 like table;
insert into table2 select * from table;

Running multiple instances of Thunderbird

You can run multiple instances of Thunderbird with different user profiles for each instance, by launching it from command line as:

[[email protected] ~]$ thunderbird -no-remote -P work &
[[email protected] ~]$ thunderbird -no-remote -P personal &

The -P option defines the profile name. If you want to create a new profile, use -P without a name.

NOTE: This article is a short version of Run multiple copies of Thunderbird at the same time from the Mozilla Knowledge Base.

Login in to website with Digest authentication in Python

Websites that use HTTP authentication, can use one of a couple of authentication methods, like Basic or Digest. When first opened, the website returns a 401 message, along with a string that contains the type of authentication and the Realm, and expects from the user to enter their credentials. Here is how to login with Python to a website that uses Digest.

Read More →

MediaWiki upgrade to 1.19.0 regression

Upgrade from an earlier version to 1.19.0 breaks some installations, with error:

"Revision::fetchFromConds". Database returned error "1054:
Unknown column 'rev_sha1' in 'field list' (localhost)".

This has been reported as a bug, and fixed in the development branch. Temporary fixes: downgrade back to 1.18.3 (tar.gz) or upgrade to a snapshot of the master branch of 1.20alpha.

late collision σε συσκευές Cisco

Στις συσκευές Cisco, ένας από τους μετρητές που τηρούνται για κάθε διεπαφή είναι τα late collision. Κατά τη Cisco, αν τηρούνται οι προδιαγραφές καλωδίωσης σε ένα τοπικό δίκτυο, τότε οι πιθανές συγκρούσεις (collisions) θα συμβαίνουν προτού μια διεπαφή στείλει τα πρώτα 64 byte του πακέτου. Στην περίπτωση που η σύγκρουση συμβεί μετά τα 64 byte, τότε ανιχνεύεται ως late collision.

Μπορεί να οφείλεται σε:

  1. μεγαλύτερο μήκος καλωδίων από εκείνο που ορίζουν τα πρότυπα, ή
  2. σε ασυμφωνία της ρύθμισης Duplex σε συνδεδεμένες διεπαφές.


Το εργαλείο γραμμής εντολών ifconfig μπορεί να εμφανίσει πληροφορίες σχετικά με τις διεπαφές δικτύου του συστήματος, και να κάνει ρυθμίσεις σε αυτές. Για παράδειγμα, μπορείτε να το χρησιμοποιήσετε για να δείτε την διεύθυνση MAC μιας διεπαφής, ή αν υπάρχουν συγκρούσεις πακέτων μεταξύ του συστήματος και της επόμενης συσκευής δικτύου (collissions).

Αν χρησιμοποιηθεί χωρίς καμμιά παράμετρο, απλά εμφανίζει όλες τις διεπαφές δικτύου και μερικές πληροφορίες για αυτές. Για να δείτε πληροφορίες για μια μόνο διεπαφή, δώστε το όνομά της μετά την εντολή, δηλαδή:

ifconfig eth0

Ενεργοποίηση μιας διεπαφής και ανάθεση της διεύθυνσης δικτύου

ifconfig eth0 up netmask

Facepalm of the day 2

Cisco devices will commit a command that you typed in configuration mode when you hit Ctrl+Z to fall back to enable mode.

For example, while configuring an interface, if you type shutdown and then press Ctrl+Z to exit configuration mode, the shutdown command is executed. Note, that this does not happen in PacketTracer, but it does happen in GNS3, and -of course- on real devices.


Hello, I'm Marios Zindilis and this is my website. Opinions are my own. You also find me on LinkedIn and GitHub.

Unless otherwise specified, content is licensed under CC0.