Samstag, 7. März 2009

Cups Printer automatisch neustarten

Immermal wieder Probleme mit cups und kein Ende :-( Wenn USB-Drucker automatisch deaktiviert werden, hilft dieses kleine Ruby Programm.

echo "*/2 * * * * /home/$USER/bin/enablePrinter.rb" > /etc/cron.d/cupsPrinterRestart
chmod 755 /etc/cron.d/cupsPrinterRestart
mkdir /home/$USER/bin/
echo '#!/usr/bin/env ruby

printer_infos = `/usr/bin/lpstat -t`
printers_to_enable = Array.new()

printer_infos.each_line do |line|
=begin
if line =~ /(Drucker|printer) (.*) (is|ist) ([^.]*)\./
if $4 == "inaktiv" || $4 == "idle"
printers_to_enable << $2
end
end
=end
if line =~ /(Drucker|printer) (.*) (disabled|deaktiviert)/
printers_to_enable << $2
end
end

printers_to_enable.each {
|printer|
`/usr/sbin/cupsenable #{printer}`
}' > /home/$USER/bin/enablePrinter.rb
chmod 755 /home/$USER/bin/enablePrinter.rb

Keine Kommentare:

Kommentar veröffentlichen