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% [?]

post /var/log/head

March 29th, 2009

Filed under: linux — starenka @ 23:08
Tags: , ,

Opravdu zběžně pár střípků, který jsem nedávno potřeboval a sestrojil (ano, za mírných šťouchů jiných, kterým tímto děkuji).

přejmenování souborů v adresáři podle seznamu uloženém v souboru (dělal jsem pořádek v Red Dwarfu, no ;) )

current_files=(*); i=0; while read; do mv "${current_files[i++]}" "$REPLY"; done < ../list

promazání souborů starších 15ti dní (na můj boptnající bordel adresář)

find /junk/. -atime 15 -delete
Blogged with the Flock Browser

Popularity: 23% [?]

post hostrotator - změna hosts při joinutí specifického ESSID

January 7th, 2009

Filed under: linux — starenka @ 02:31
Tags: , , , , , , ,

Dost často potřebuju mít definovaný různý hostnames pro různý wifi sítě, ke kterým se připojuju. Problém, jak jistě tušíte, je v tom, že vetšina sítí má podobnej rozsah a tudíž hostname “milacek” na vaší domácí síti může v práci klidně směrovat na šéfův počítač. Nenabádám ke vzpourám, ale některý představy by se měli típnout už v zárodku. Aby jsem těmhle kolizím předešel, po každém připojení na wifi se mi k defaultním hosts přihodí ještě specifické pro danou síť. Samozřejmě to není převratná myšlenka, ale na amatérskýho krotitele tučňáků po necelým roce 24ek v ZOO nemůžete čekat víc. Ehm.

prekvizity:

  1. wifi je na wlan0 (změn si dle potřeby)
  2. v ~/hosts je:
    • minimálně soubor _hosts, kde jsou univerzální hosts (vaše hostname atd.)
    • soubor(y) s názvem ESSID, pro který chcete mít ještě další definovaný hostnames
  3. skript (níže) uložit, udělat spustitelným a zkopírovat pod rootem do /etc/network/if-up.d
#!/bin/sh
ssid=`iwconfig wlan0 | grep ESSID | cut -d\" -f2`

cp /home/starenka/hosts/_hosts /etc/hosts
if [ -f /home/starenka/hosts/"$ssid" ];
     then echo "
\n#==$ssid specific==\n" >> /etc/hosts; cat /home/starenka/hosts/"$ssid" >> /etc/hosts
fi

Popularity: 22% [?]

post Shell-fu: tvůj blbovníček na málo používané příkazy

November 28th, 2008

Filed under: linux, programming, python — starenka @ 09:57
Tags: , , , , ,

Nedávno jsem na cinanove blogu viděl zajímavej skript, kterej sloužil jako prasátko (pokladnička) málo používanejch příkazů. Docela mě nápad nadchnul a jelikož mi pojetí moc nevyhovovalo, rozhodnul jsem se napsat si vlastní. O co jde. Skript uloží tebou zadaný příkazy do souboru (sqlite) a dovolí je (p)otagovat. Položky je následně možné kopírovat do klipperu (schránka v KDE) nebo pomocí xclipu do schránky Xek. Samozřejmě je můžeš i mazat. Na bonus můžes vypsat všechny tagy nebo položky. Hledá se podle tagu.

Skript je dobré udělat spustitelným, symlinknout do $PATH a symlink zbavit přípony. Tím člověk docílí možnosti spustit skript jednoduše odkudkoliv. Jak používat? Nápověda se zobrazí po zadání shell-fu -h. Hledat podle tagu se dá taky jednodušeji shell-fu tag resp. shell-fu "tag s mezerou".

Pokud nemáte, bude třeba následující balíčky: python, python-sqlite, sqlite3 a volitelně xclip. Zdroják můžete stáhnout tady. Barvy a cestu k databázi si snadno změníte v konstantách na začátku souboru.

Popularity: 22% [?]

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