rulu ruru

post Zálohy na vzdálenej čípotač jednoduše (cron,rsync,bash)

July 5th, 2010

Filed under: linux — starenka @ 11:45
Tags: , , , , , ,

Nejsem moc velkej fanda zálohování, ale už se mi to párkrát vymstilo, takže jsem byl donucenej s tím něco dělat. Potřeboval jsem nějakej batch, kterej odzálohuje, co potřebuju a nebude nutit připojovat fyzicky nějaký zařízení. Logicky tedy k zálohování dat na notebooku používám druhý PC, který je dafakto jen držák na HDD s hudbou a filmama. Menší problém je ten, že to PC je vetšinu času vypnutý (prostě nesnáším, když cokoliv běží 90% naprosto zbytečne pro případ, že bych to náhodou mohl potřebovat). Jediná rozumná volba tedy byla “zbudit” PC a po odzálohování se zeptat, jestli ho chci vypnout nebo ne (Ten dotaz je asi nejmenší zlo, na který jsem přišel. Chvíli jsem koketoval s myšlenkou, zda zjišťovat, jestli je zapnutý monitor/pc bylo zapnuty s vypnutým monitorem = nekoukám se na film etc., nicméně jsem nenašel žadnou stoprocetně spolehlivou cestu, jak zjistit, proč je počítač zrovna spuštěnej).

Jak na to? Na cílový mašině:

# aptitude install ethtool

Zjistíme, jestli karta podporuje WoL (d - magic packet, p - physical activity)

# ethtool eth0 | grep Wake-on
root@bedna:/home/starenka# ethtool eth0 | grep Wake-on
 Supports Wake-on: g
 Wake-on: d

Povolíme WoL:

# ethtool -s eth0 wol g
root@bedna:/home/starenka# ethtool eth0 | grep Wake-on
 Supports Wake-on: g
 Wake-on: g

Ten flag je bohužel třeba nastavit při každým spuštění, takže:

starenka@bedna:~$ cat /etc/init.d/wol
#!/bin/bash
### BEGIN INIT INFO
# Provides: wol
# Required-Start: $syslog $networking
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: sets wol on eth0
### END INIT INFO
ethtool -s eth0 wol g
# chmod +x /etc/init.d/wol

a spustímě skript při každým runlevelu (ehm)

# update-rc.d wol defaults

zjistíme MAC cílový mašiny:

# ifconfig -a | grep eth0

Na mašině odkud zálohujeme nainstalujeme rsync a wakeonlan

# aptitude install rsync wakeonlan

backup skript upravíme dle potřeb a šoupneme do cronu

#!/usr/bin/env bash
TAR_MAC="00:1f:d0:63:27:80"
TAR_HOST="bedna"
TAR_USER="starenka"
MAX_BW=400 #KB/s
MAX_TRIES=5
INTERVAL_TRIES=30
DIALOG_TITLE="–title Backup"

DIRS=(‘/photo’ ‘/www’ ‘/prac’ ‘/mail’
)
EXCLUDE=(‘.opera/cache/’ ‘.bzr’ ‘.svn’ ‘.git’
)

kdialog –passivepopup ‘Starting regular backup batch’ 5
if [ `ping -s 1 -c 1 $TAR_HOST > /dev/null; echo $?` -eq 1 ]; then
    kdialog $DIALOG_TITLE –passivepopup "$TAR_HOST is down, sending magic packet" 5   
    wakeonlan $TAR_MAC
    TRIES=0
    until [ `ping -s 1 -c 1 $TAR_HOST > /dev/null; echo $?` -eq 0 ]; do
        let TRIES=TRIES+1
        if [ $TRIES -eq $MAX_TRIES ]; then
            kdialog $DIALOG_TITLE –sorry "$TAR_HOST not responding, giving up…" 5
            exit 1
        fi
        kdialog $DIALOG_TITLE –passivepopup "$TAR_HOST not responding, waiting for ping ($TRIES)…" 5
        sleep $INTERVAL_TRIES
    done
fi

for db in ${DIRS[@]}
    do
        kdialog $DIALOG_TITLE –passivepopup "Starting $db" 5
        rsync -Prazvh –delete "${EXCLUDE[@]/#/–exclude=}" –copy-links –bwlimit=$MAX_BW -e ssh "$db" ${TAR_USER}@${TAR_HOST}:/backups
        kdialog $DIALOG_TITLE –passivepopup "Backup of $db has finished" 5
    done
kdialog $DIALOG_TITLE –passivepopup ‘Backup finished’ 5
kdialog $DIALOG_TITLE –yesno "Backup has finished. Shoudl I halt the remote machine ($TAR_HOST)?"
if [ $? -eq 0 ]; then
    kdialog $DIALOG_TITLE –passivepopup "Halting $TAR_HOST" 5
    echo ’sudo halt’ | ssh ${TAR_USER}@${TAR_HOST}
fi
 

Popularity: 11% [?]

post QR kódy v Opeře

November 29th, 2009

Filed under: zeitgeist — starenka @ 20:06
Tags: , , ,

Pokuď jste lenivý přepisovat URL stránky, odkazu, výběru textu nebo URL obrázku na stránce, existuje jednoduchý řešení. Ano, samozřejmě tvůj skvělej FeurFuchs na to má jistě plugin, ale pro Operu existuje taky jednoduchý řešení. Stačí upravit menu.ini (víc o úpravách menu.ini tady) a nainstalovat balicek na generování QR (qrencode):

[Link Popup Menu]
Item, "Show QR"         = Execute program, "bash","showqr %l"

[Document Popup Menu]
Item, "Show QR"         = Execute program, "bash","showqr %u"

[Hotclick Popup Menu]
Item, "Show QR"         = Execute program, "bash","showqr '%t'"

[Image Link Popup Menu]
Item, "Show QR link"         = Copy link & Execute program, "bash","showqr %c"

[Image Popup Menu]
Item, "Show QR"         = Copy image address & Execute program, "bash","showqr %c"

a nechat posílat na jednoduchej bash skript:

#!/usr/bin/env bash

qrencode -o /tmp/qr.png "$1"
if [ -e /tmp/qr.png ]
    then kuickshow /tmp/qr.png
    rm /tmp/qr.png
else kdialog –error "Failed to generate QR"
fi
 

QR

Popularity: 17% [?]

ruldrurd
© starenka 2oo7, cute alien monster by noizcut, original theme by Laurentiu Piron - customized by starenka | proudly powered by WordPress