5176 sujets

Le Bar du forum

Hello

J'avais vu un post de quelqu'un qui cherchait à faire cela, mais je ne remet pas la main dessus...

En gros l'idée était de pouvoir être prévenu si le status d'un nom de domaine change.

J'ai écrit un petit script en Ruby pour faire cela. J'avais d'abord fait un script sh de quelques lignes, mais j'ai trouvé que ça ne faisait pas assez geek ... Je l'ai réécrit en Ruby et je me suis amusé avec du yaml pour stocker a configuration.


root@bep-pc1|~/Bin|120#vi status.rb
#!/usr/local/bin/ruby
require 'yaml'
class Whois
  def self.status
    @config = YAML::load(IO.read('status.yml'))
    @config.each do |key,value|
      unless value
        value = ''
      end
      @config[key] = compare(key,value)
    end
    fd = File.open('status.yml', 'w+') do |fd|
        begin
          fd.write(@config.to_yaml)
        rescue EOFError
        end
    end
  end
  def self.compare(key,oldStatus)
    system "whois "+key+" | grep RRP > newStatus"
    newStatus = ''
    fd = File.open('newStatus', File::RDONLY) do |fd|
      begin
        newStatus = fd.gets
      rescue EOFError
      end
    end
    if oldStatus != newStatus
      sendmail(key)
    end
    File.unlink("newStatus")
    newStatus
  end
  def self.sendmail(ndd)
    email = "email@gmail.com"
    system "mail "+email+" -s "+ndd+" < newStatus"
  end
end
Whois.status


Il faut un deuxième fichier ( status.yml ):


actinidia.net: 
cedrich.net: 


( il se remplira par la suite - il faut y mettre initialement la liste des domaine que l'on veut suivre ).

Pour s'en servir, il suffit de le mettre sur une machine *nix et pour l'éxécuter ( après avoir fait un chmod +x status.rb ) : ./status.rb .

Si on veut suivre ça , il suffit alors de le mettre dans un crontab et ça roule.

J'ai rarement écrit des script Ruby "pur" et je suis conscient que ça peut être amélioré Smiley cligne

Qu'en pensez vous ?