Went on a helicopter ride last weekend, there were some great views. Here are some photos, click on each photo to see it in more detail:
22 July 2006
12 July 2006
xargs and find
find /srv/files -name "Thumbs.db*" -print0 | xargs -0 /bin/rm -f {}
This deletes all files matching pattern Thumbs.db*. -print0 and -0 cause delimitation by the null char rather than whitespace, so filenames can contain whitespace.
If you add -i to the xargs options the command will be called once for each entry rather than receiving a list of entries, e.g :
find . -name "${pattern}" -print0 | xargs -0 -i convert -verbose -quality ${compression} {} {}
Note, with -i {} can be repeated multiple times in-place of the entry.
This deletes all files matching pattern Thumbs.db*. -print0 and -0 cause delimitation by the null char rather than whitespace, so filenames can contain whitespace.
If you add -i to the xargs options the command will be called once for each entry rather than receiving a list of entries, e.g :
find . -name "${pattern}" -print0 | xargs -0 -i convert -verbose -quality ${compression} {} {}
Note, with -i {} can be repeated multiple times in-place of the entry.
10 July 2006
Favourite Firefox extensions
Adblock Plus
Copy Plain Text
Delicious Bookmarks
Download Statusbar
Febe (I'm still looking for a decent profile sync other than file sync)
FireGestures
Foxmarks Bookmark Synchronizer
IE Tab
Linkification
Reliby
ScribeFire
Search Marker
Web Developer
Updated (24/06/2008)
Copy Plain Text
Delicious Bookmarks
Download Statusbar
Febe (I'm still looking for a decent profile sync other than file sync)
FireGestures
Foxmarks Bookmark Synchronizer
IE Tab
Linkification
Reliby
ScribeFire
Search Marker
Web Developer
Updated (24/06/2008)
09 July 2006
Check disks with e2fsck
umount /dev/hdc1
/sbin/e2fsck -c -c -C 0 -D /dev/hdc1
-c -c: marks bad blocks using a non-destructive read-write test
-C 0: prints completion bar
/sbin/e2fsck -c -c -C 0 -D /dev/hdc1
-c -c: marks bad blocks using a non-destructive read-write test
-C 0: prints completion bar
Find world writeable/executable or suid/sgid files
# Find suid/sgid files
find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \;
# Find world writable files
find / -type f \( -perm -002 \) -exec ls -lg {} \;
# Find world executable files
find / -type f \( -perm -001 \) -exec ls -lg {} \;
# Find unowned files
find / -nouser -o -nogroup
find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \;
# Find world writable files
find / -type f \( -perm -002 \) -exec ls -lg {} \;
# Find world executable files
find / -type f \( -perm -001 \) -exec ls -lg {} \;
# Find unowned files
find / -nouser -o -nogroup
Copy directories over ssh
cd /somedir/somesubdir && tar cpzf - * | ssh somehost "cd /somedir/somesubdir && tar xpzf -"
or
ssh somehost "cd /somedir/somesubdir && tar cpzf - *" | (cd /somedir/somesubdir && tar xpzf -)
or
ssh somehost "cd /somedir/somesubdir && tar cpzf - *" | (cd /somedir/somesubdir && tar xpzf -)
cd/dvd iso files
# make an iso of a dir
mkisofs -r /home/sekhonp/ > image.iso
# make an iso of a cd
dd if=/dev/cdrom of=image.iso bs=10k
# mount iso
mount -o loop,ro -t iso9660 ./image.iso /mnt/iso
# burn an iso to cd
cdrecord -v speed=12 dev=0,0,0 -data image.iso
# or directly
mkisofs -r /home/sekhonp/ | cdrecord -v speed=12 dev=0,0,0 fs=8m -data -
mkisofs -r /home/sekhonp/ > image.iso
# make an iso of a cd
dd if=/dev/cdrom of=image.iso bs=10k
# mount iso
mount -o loop,ro -t iso9660 ./image.iso /mnt/iso
# burn an iso to cd
cdrecord -v speed=12 dev=0,0,0 -data image.iso
# or directly
mkisofs -r /home/sekhonp/ | cdrecord -v speed=12 dev=0,0,0 fs=8m -data -
lsof
lsof is a very useful diagnostic command:
# show whose listening on sockets
lsof -i -P
# which processes are using a file
lsof /mnt
# which process is holding localhost:80
lsof -i TCP:80
# show handles associated with a process 30563
lsof -p 30563
# show handles associated with a process syslogd
lsof -c syslogd
# show files associated with user sekhonp
lsof -u sekhonp
# show whose listening on sockets
lsof -i -P
# which processes are using a file
lsof /mnt
# which process is holding localhost:80
lsof -i TCP:80
# show handles associated with a process 30563
lsof -p 30563
# show handles associated with a process syslogd
lsof -c syslogd
# show files associated with user sekhonp
lsof -u sekhonp
Grab photos off your mobilephone via bluetooth using obexftp
List photos on phone
obexftp -b 00:1A:75:F1:40:B5 -c "Memory Stick/DCIM/100MSDCF" -lGrab photos off phone
obexftp -b 00:1A:75:F1:40:B5 -c "Memory Stick/DCIM/100MSDCF" -g DSC00024.JPG
quick ssh script
Create a script called ssh-to like so:
now to ssh to server1 all you need type is
>server1
you can also run commands on server e.g
>server1 ls -al
#!/bin/sh>ln -s ssh-to server1
ssh `basename $0` $*
now to ssh to server1 all you need type is
>server1
you can also run commands on server e.g
>server1 ls -al
cvs update all subdirectories
assuming server1.domain.com:/cvs is the cvs repository and you have a whole bunch of cvs modules checked out in /cygdrive/c/sekhonp/it/builds/system1
#!/bin/bash cvs=/cygdrive/c/sekhonp/tools/cvs/cvs update() { echo "Updating system ${1}" cd ${1} for module in *; do if [ -d ${module}/CVS ]; then ${cvs} -qq -d :pserver:`whoami`@server1.domain.com:/cvs update -dPA ${module} fi done } update /cygdrive/c/sekhonp/it/builds/system1
Script to download a tar and extract it if it has changed
#!/bin/bash
tarFile=bhavaya.tar.gz
sourceTarFile=http://files.parwy.net/it/builds/${tarFile}
downloadDir=/cygdrive/c/sekhonp/it/builds/bhavaya
extractDir=${downloadDir}/module
proxy="http://primary-proxy:8080"
export http_proxy=${proxy}
cd ${downloadDir}
modificationTime=`stat -c %y ${tarFile}`
wget -N --proxy=on --proxy-user=${1} --proxy-passwd=${2} --http-user=${3} --http-passwd=${4} ${sourceTarFile}
newModificationTime=`stat -c %y ${tarFile}`
echo "old modification time: ${modificationTime}, new modification time: ${newModificationTime}"
if [ "${modificationTime}" != "${newModificationTime}" ] ; then
echo "Extracting ${tarFile}..."
tar -C ${extractDir} -xzvf ${tarFile} 1>/dev/null
fi
Syncing directories on windows
Here's a little script that syncs a directory using xxcopy
@echo off
REM /BI Backs up incrementally, different (by time/size) files only.
REM /FFn Treats file times within +/- n sec as the same
REM /ZY Deletes extra files or subdirectories in destination, there is no confirmation prompt.
REM /E Copies directories and subdirectories, including empty ones.
REM /H Copies hidden and/or system files also.
REM /R Overwrites read-only files.
REM /KS Keeps the source attributes including the read-only bit.
REM /ZE Disables the use of all Environment Variables for XXCOPY.
REM /YY No prompting
REM /C Continues copying even if errors occur (default).
REM /Q Does not display files which are skipped.
REM /oA append to log file
REM /Xexcludes files or directories, e.g.
xxcopy "E:\sekhonp\it\builds\bats-system\" "C:\sekhonp\it\builds\bats-system\" /BI /FF30 /ZY /E /H /R /KS /ZE /YY /C /Q /Xclasses\ /X*\classes\ /Xdecompiledsrc\ /X*\dist\ /X*\build\ /Xlog\ /X*.zip
Subscribe to:
Posts (Atom)