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 bzr+ssh group rw a umask

June 2nd, 2010

Filed under: linux — starenka @ 17:16
Tags: , , , , ,

Znáte ten pocit bezmoci, když nějakou věc rešíte už po třetí a pokaždý vás stojí 20 bodů IQ, máte pogrepovanej celej Gugl, zmateně a kuse se to snažíte natlačit do hlavy všem, který ještě maji náladu vás poslouchat a pořád nemůžete přijít na to, “jak jsem to sakra minule udělal”? Já jo. 

Pro mě už klasická situace. Máte server, na kterej x uživatelů s primarní grupou (řekněme vcs) pushuje repozitáře. Aby se zabránilo tomu, aby nově vytvořený branche a upravený soubory byly -w pro zmíněnou grupu, je třeba nastavit umask 0002. To je logický. Jenže kámen úrazu je v tom, že nastavení umasku v /etc/profile nepomáhá. Ano, pro někoho je to zřejmý, protože binárka bzr nespouští žádnej shell. Ááááchjo. Řešení je opravdu jednoduchý. Stačí vytvořit wrapper, kterej pustí umask a pak zavolá bazaar s parametrama, který na wrapper přišly. Čili něco jako:

starenka@xxx:~$ cat /usr/local/bin/bzr
#!/usr/bin/env bash
umask 0002
/usr/bin/bzr "$@"
 

PS. chtěl bych poděkovat ntz, za to, že mě trpělivě naved’ až ke slovu wrapper a já si vzpomněl, jak už jsem to dvakrát předtím řešil :)

Popularity: 16% [?]

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 Instalace tkiptun-ng ze zdroje v Ubuntu 8.04

December 22nd, 2008

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

Tkiptun-ng (česky, wiki airdump) je POC (proof of concept) útoku na bezdrátové sítě zabezpečené pomocí WPA/TKIP. Nikde jsem nenarazil na Debian/*buntu balíčky, tak přikládám mininávod jak zkompilovat pro lidičky, kteří si zatím s Linuxem neví moc rady.

přihlásíme se jako root a nainstalujeme potřebné závislosti:

sudo -i && apt-get install libssl-dev libsqlite3-dev autoconf libtool

přejdeme do adresáře /usr/src a stáhneme aktuální zdroj z SVN:

cd /usr/src && wget http://dl.aircrack-ng.org/aircrack-ng-svn-trunk-current.tar.gz

rozbalíme:

tar xzvf aircrack-ng-svn-trunk-current.tar.gz

přejdeme do adresáře se zdrojem:

cd aircrack-ng-svn-trunk-current

zkompilujeme a nainstalujeme:

make
make strip
make install

a nakonec se odhlásíme pomocí ctrl+d. Postup je samozřejmě podobný pro všechny Linuxové distribuce a bude se lišit jen ve způsobu stažení potřebných závislostí a případně jmen balíčků.

Popularity: 20% [?]

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