September 22, 2014
Ever want to know how to drop an argument (and value), --dir in this case, from a Bash script? Someone from my local LUG asked how to do it and this is what I came up with: Fun ;) #!/usr/bin/env bash args=("$@") myargs=() nextarg=-1 for ((i=0; i<$#; i++)) { if [ $nextarg == $i ]; then continue; fi case ${args[$i]} in --dir) nextarg=$((i+1)) ;; *) myargs+="${args[$i]} " esac } echo $myargs ./remove_dir.bash --dir foo --bar baz --bar baz
Read More...
bash (3)
January 31, 2014
It doesn't seem you can lose data even when you might otherwise expect to ;)
I setup a small replica set using
mongod --fork --logpath a.log --smallfiles --oplogSize 50 --port 27001 --dbpath data/z1 --replSet z
mongod --fork --logpath b.log --smallfiles --oplogSize 50 --port 27002 --dbpath data/z2 --replSet z
mongod --fork --logpath c.log --smallfiles --oplogSize 50 --port 27003 --dbpath data/z3 --replSet z
And initalized it:
> rs.initiate(
{ _id:'z',
members:[
{ _id:1, host:'localhost:27001' },
{ _id:2, host:'localhost:27002' },
{ _id:3, host:'localhost:27003' }
]
}
);
Then I killed all three processes:
kill -9 25542 25496 25483
Next I brought one of them back up
mongod --fork --logpath c.log --smallfiles --oplogSize 50 --port 27003 --dbpath data/z3
and inserted a doc
> db.foo.insert({a:1})
Then I killed that process
kill -9 25885
and brought the replica set back online using
mongod --for
Read More...
mongodb (1)
May 20, 2012
alias ls='ls -ah --color=always' alias ll='ls -lavh --color=always' alias cp='cp -i' alias vi='/usr/bin/emacs' alias ..='cd ..' alias ...='cd ../..'
Read More...
bash (3)
January 7, 2012
I had a problem with PostgreSQL pgdump recently. My setval() calls were all set to '1'. I whipped up this quick script to fix things: #!/usr/bin/env python DB_NAME = 'my_db' from subprocess import Popen, PIPE import re exclude = [ 'tablename', 'rows' ] tp = re.compile( '[^a-z_]' ) ts = Popen( [ "/usr/bin/psql", DB_NAME, "-c SELECT tablename FROM pg_tables WHERE tablename NOT LIKE 'pg_%' AND tablename NOT LIKE 'sql_%' ORDER BY tablename" ], stdout=PIPE ).communicate()[ 0 ].split( ' ' ) tables = [] for t in ts: t = tp.sub( '', t ) if len( t ) == 0 or t in exclude: continue tables.append( t ) for t in tables: sql = "SELECT pg_catalog.setval( pg_get_serial_sequence( '%s', 'id' ), ( SELECT MAX( id ) FROM %s ) + 1 );" % ( t, t ) print Popen( [ "/usr/bin/psql", DB_NAME, "-c %s" % sql ], stdout=PIPE ).communicate()[ 0 ]
Read More...
postgresql (3) python (2)
April 3, 2011
# basic .muttrc for use with Gmail # Change the following six lines to match your Gmail account details set imap_user = "username@gmail.com" set imap_pass = "" set smtp_url = "smtp://username@smtp.gmail.com:587/" set smtp_pass = "" set from = "username@gmail.com" set realname = "Firstname Lastname" # # # Change the following line to a different editor you prefer. set editor = 'vim + -c "set textwidth=72" -c "set wrap"'
Read More...
mutt (1) gmail (1)
January 26, 2010
If you're using a flavor of *nix that has an rc.local file, and then you start using Debian GNU/Linux, you might be wondering where your rc.local file is. Quite simply, it's not there. Here's how to add it.
Create a new file named /etc/init.d/local like this:
#!/bin/sh
# put startup stuff here
Make the file executable:
chmod 755 /etc/init.d/local
Add it to startup:
update-rc.d local defaults 80
You should be seeing something like this:
Adding system startup for /etc/init.d/local ...
/etc/rc0.d/K80local -> ../init.d/local
/etc/rc1.d/K80local -> ../init.d/local
/etc/rc6.d/K80local -> ../init.d/local
/etc/rc2.d/S80local -> ../init.d/local
/etc/rc3.d/S80local -> ../init.d/local
/etc/rc4.d/S80local -> ../init.d/local
/etc/rc5.d/S80local -> ../init.d/local
Read More...
linux (10) debian (5)
January 14, 2006
Here's a command to install lots of games on your Debian box:
yes | \
for x in `apt-cache search game \
| sort \
| awk 'BEGIN { FS = " - " } { print $1 }'`; do \
apt-get install $x; \
done
Read More...
debian (5) game (5)