cvs to git

Flyttade mina x10 projekt till git idag.

apt-get install git-core
apt-get install gitweb
apt-get install cvsps ska behövas för git cvsimport?

cat /etc/gitweb.conf
$projects_list = ”/var/cache/git/projects_list”;

cat /var/cache/git/projects_list
x10-common.git Tommy
x10-web.git Tommy
x10test-android.git Tommy

cd /var/cache/git

Migrera repo:n
git cvsimport -k -i -d /var/lib/cvs -C project project
mv project/.git project.git
rmdir project
chgrp -R src project.git
chmod -R ug+w project.git
chmod +s project.git
# the hooks/ and info/ dirs are special since the control repository access
cd project.git; chgrp -R src hooks info config description
find -type d -exec chmod +s {} ;

vi config: bare = true
vi description

Migrera mysql-användare

Skorpans SSD har kommit och Ubuntu Server är installerat på den. Det börjar närma sig dags att flytta över mysql-databaserna till den nya disken. Så här kommer det att gå till:

Backa upp databaser
mysqldump -p <db> > <db>.sql

Backa upp användare
mysql -u root -p -B -N -e "SELECT user, host FROM user" mysql
mysql -u root -p -B -N -e "SHOW GRANTS FOR 'userName'@'hostName'" >> grants.sql

Importera
mysql -u root -B -N < <backup>.sql

Brandvägg med ethernetbrygga

Såg att en dator på mitt nätverk hade mer trafik ut på nätet än vad den borde ha. Medan jag letade efter orsaken stänge jag till lite:

iptables -F FORWARD
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 0/0 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 0/0 --dport 443 -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.1.0/24 -d 0/0 --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.1.65/0 --dport 22 -j ACCEPT
iptables -P FORWARD DROP

Det visade sig vara Voddlers vnetd som nätverkar även när voddler servicen är avstängd…

Network bridge i Ubuntu när man glömmer lösenord

Jag har glömt mitt lösenord till ett e-post-konto, så jag kan inte konfa det kontot i min nya telefon. Det är visserligen inte jättesvårt att få ett nytt, men jag ville gärna veta vad jag glömde…

Just detta kontot ligger på en server utan SSL-stöd, så det är ju inte jättesvårt att få tillbaka lösenordet. Dessvärre gick det inte att sniffa i mitt switchade nät, inte ens på w-lan:et. Jag letade länge och väl efter en gammal hubb att sätta framför w-lan:et utan framgång innan jag kom på den brilljanta idén att konfa en ethernet-brygga av en gammal burk med två nätverksinterface innan ADSL-modemet.

apt-get install bridge-utils
modprobe bridge

/etc/network/interfaces
# eth0-eth1 bridge
iface eth0 inet manual
iface eth1 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1

/etc/init.d/networking restart

Sen var det bara att sniffa och kolla i wireshark:
tcpdump -s 1500 -i br0 -w tcpdump.imap port 143

Mailserver

Skorpan hämtar mail från många av våra mail-adresser så vi kan sortera och läsa dem från ett konto och spara så mycket mail vi vill.

apt-get install exim4
apt-get install exim4-config
apt-get install courier-imap-ssl

apt-get install fetchmail
apt-get install procmail

dpkg-reconfigure exim4-config
General type of mail configuration: mail sent by smarthost; received via SMTP or fetchmail
System mail name: nangijala
IP-addresses to listen on for incoming SMTP connections: 127.0.0.1;192.168.1.65
Other destinations for which mail is accepted: skorpan;sofia;nangijala
Machines to relay mail for: 192.168.1.0/24;10.0.8.0/24
IP address or host name of the outgoing smarthost: smtprelay1.telia.com
Hide local mail name in outgoing mail? <Yes>
Visible domain name for local users: nangijala
Keep number of DNS-queries minimal (Dial-on-Demand)? <No>
Delivery method for local mail: Maildir format in home directory
Split configuration into small files? <No>

/etc/email-addresses styr vilket konto vilka användare ska använda för att skicka mail
root: skorpan.no-ip.info@telia.com
skorpan: skorpan.no-ip.info@telia.com
tommy: tommy.m.svensson@telia.com
anna: anna.ledeby@telia.com
www-data: skorpan.no-ip.info@telia.com

/etc/aliases styr vart mail till olika användare ska skickas
root:    tommy@nangijala
tommy:    tommy@nangijala
skorpan:    tommy@nangijala

/etc/fetchmailrc
set postmaster ”postmaster”
set bouncemail
set no spambounce
set properties ””
#set daemon 60
set daemon 120

poll mailin.telia.com via mailin.telia.com
with proto POP3 and options no dns
user ’mail-server-user’ there with password ’mail-server-password’ is ’local-user’ here
fetchall
nokeep


Skorpan skickar mail med postfix. Det behövs en del konfiguration för att skicka med telia-kontot:

/etc/postfix/canonical
tommy.m.svenssn@telia.com tommy@nangijala
tommy tommy@nangijala

/etc/postfix/generic
tommy@nangijala tommy.m.svensson@telia.com
root@nangijala tommy.m.svensson@telia.com

/etc/postfix/passwd
tommy.m.svensson@telia.com teliapasswd

/etc/postfix/recipient_canonical
tommy.m.svensson@telia.com tommy@nangijala
tommy tommy@nangijala

/etc/postfix/relayhost_map
tommy.m.svensson@telia.com [mailout.telia.com]:587

/etc/postfix/sender_canonical
tommy@nangijala tommy.m.svensson@telia.com
tommy tommy.m.svensson@telia.com

Väderstation

När min utomhusgivare fungerade lite mer tillförlitligt laddade Skorpan upp väderdata till WeatherUnderground, som IBLEKING10, med consolewd som hämtades från weatherdisplays site.

Nummerpresentatör

Skorpan har en nim ansluten med tty-usb-kabel som fungerar som nummerpresentatör. Mjukvaran somanvänds är whoscalling, som hämtas från http://www.hasselaar.nu/projects on installeras med medföljande script, ev har java-sökvägar ändrats efteråt?

tty-usb-adaptern har fått olika enheter vid uppstart, så ett script ändrar nim:s configfil, som inte verkar klara av egna namn på tty:er.
#!/bin/sh
basedir=/opt/whoscalling-1.3.1
configdir=${basedir}/config
comport=`ls -l /dev/nim | gawk '{print $11}'`
if [ "$comport" = "" ]; then
comport=`ls -l /dev/nim | gawk '{print $10}'`
fi
cat ${configdir}/nim.properties.org | sed s#ttyUSB0#$comport#g > ${configdir}/nim.properties

Scriptet anropas i whoscalling:s start-script
# Wrapper
CONFIG_UPDATE="./comport.sh"
<– definieras här
WRAPPER_CMD="./wrapper"
WRAPPER_CONF="../config/wrapper.conf"
:
start() {
echo "Starting $APP_LONG_NAME..."
$CONFIG_UPDATE
<– körs här

Hemautomation

Skorpan använder heyu 2.6.0 för X10-automation. heyu skickar och tar emot x10-kommandon via en  CM11A-modul. heyu tar emot X10- och Oregon-sensorer med USB-rfxcom. heyu hämtas från www.heyu.org, kompileras och installeras (ej dpkg)

/etc/heyu/x10.conf
TTY /dev/CM11A
TTY_AUX  /dev/rfxcom RFXCOM
TRANSCEIVE NONE
RFFORWARD ALL
RFXCOM_ENABLE  OREGON
#DISPLAY_RAW_RF NOISE
DISPLAY_RAW_RF ALL
:
HOUSECODE       F

Script
/usr/local/sbin/monitor.pl monitorerar ständigt händelser från heyu. Händelser sparas till databas och kan trigga tändning av lampor. Det körs även som cron-jobb varje minut för att släcka då ingen rörelse skett på bestämd tid.

/usr/local/sbin/x10-cmd-proxy.py lyssnar efter x10-kommandon från x10-webben, cron-jobb och x10-servleten. Proxyn behövs för att göra apparna medvetna om vad andra gör.

/usr/local/sbin/daylight.pl hämtar solens upp och nedgång från weatherunderground. Den används för att styra när lampor ska tändas vid rörelse.

/usr/local/sbin/clean_weather.pl arkiverar data från x10 i weather

/usr/local/sbin/clean_x10test.pl arkiverar data från x10_2 i weather

Crontab

#Tänd
#00 7  * * 1,2,3,4,5 tommy echo on A5,6|telnet localhost 8002;
00 6  * * 1,2,3,4 tommy echo on O3|telnet localhost 8002; echo off O5|telnet localhost 8002;
00 7  * * 1,2,3,4 tommy echo on O5|telnet localhost 8002;
45 18  * * * tommy echo on O4|telnet localhost 8002;

# Släck
00 23  * * * tommy echo off A1-2,4-6|telnet localhost 8002;
00 23  * * 0,1,2,3,4 tommy echo dim F2-4,6 22|telnet localhost 8002;
00 23  * * * tommy echo dim A3 22|telnet localhost 8002;
30 22  * * 0,1,2,3,4 tommy echo off O4|telnet localhost 8002;
30 23  * * 5,6 tommy echo off O4|telnet localhost 8002;

# periodisk x10
* *  * * * root /usr/local/sbin/x10-monitor.pl -s 2>/dev/null > /dev/null

# daylight
30 2  * * * tommy /usr/local/sbin/daylight.pl

# clean daily
00 00 * * * tommy mysql –batch -N -u x10 x10 -e ”DELETE FROM motion WHERE time<DATE_SUB(now(), INTERVAL 7 DAY)”
00 00 * * * tommy mysql –batch -N -u x10 x10 -e ”DELETE FROM control WHERE time<DATE_SUB(now(), INTERVAL 7 DAY)”
00 * * * * tommy mysql –batch -N -u x10 x10 -e ”DELETE FROM hardstate WHERE time<DATE_SUB(now(), INTERVAL 4 hour)”

30 04  * * * tommy /usr/bin/nice /usr/local/sbin/clean_weather.pl > /dev/null
00 04  * * * tommy /usr/bin/nice /usr/local/sbin/clean_x10test.pl > /dev/null