remove blank lines from text file

sed '/^$/d' /path/to/input/file.txt > output.txt
grep -v '^$' /path/to/input/file.txt > output.txt
#!/bin/bash
files="/path/to/input/files/*.txt"
for i in $files
do
  sed '/^$/d' $i > $i.out
  mv  $i.out $i
done
#!/bin/bash
files="/path/to/input/files/*.txt"
for i in $files
do
  sed '/^ *$/d' $i > $i.out
  mv $i.out $i
done

SSH over SOCKS Proxy

ssh server.tld -o ProxyCommand='nc -x proxy.tld:1234 %h %p'

makes use of ‘netcat-openbsd’

ssh server.tld -lBenutzer -p2210 -o ProxyCommand='nc -x proxy.tld:1234 %h %p'
sftp -P2210 -o "ProxyCommand nc -x proxy.tld:1234 %h %p" Benutzer@server.tld:/path/to/file.ext .
rsync -e "ssh -lBenutzer -p2210 -o ProxyCommand='nc -x proxy.tld:1234 %h %p'" server.tld:/path/to/file .

virsh cheat sheet

list guests:

virsh list --all

Show guests info:

virsh dominfo $vmname

Start guest:

virsh start $vmname

Shutdown guest:

virsh shutdown $vmname

Poweroff guest:

virsh destroy $vmname

Suspend guest:

virsh suspend $vmname

Resume guest:

virsh resume $vmname

Create guest from XML:

virsh create xml_file.xml

Dump guest XML:

virsh dumpxml $vmname

Modify guest:

virsh edit $vmname

Remove guest definition:

virsh undefine $vmname

Save guest state:

virsh save $vmname $state_file

Restore guest state:

virsh restore $state_file

Create guest:

virt-install --name=$vmname --arch=x86_64 --vcpus=1 --ram=1024 --os-type=linux --os-variant=generic26 --hvm --connect=qemu:///system --network bridge:virbr0 --cdrom=/where/ever/u/store/isos/arch.iso --disk path=/where/ever/u/wish/guest.img,size=20 --accelerate --vnc --noautoconsole --keymap=de

Migrate guest:

virsh migrate --live --copy-storage-inc --verbose $vmname qemu+ssh://destination/system

Linux SSHFS usage in fstab

on e.g. Debian you have to install

aptitude install sshfs

edit /etc/fstab and add the line

sshfs#user@123.123.123.123:/what/ever/remote/	/where/you/wish/local/	fuse	uid=1003,gid=100,umask=0,allow_other,_netdev,ro		0	0

or directly in shell:

sshfs user@123.123.123.123:/what/ever/remote/ /where/you/wish/local/ -o idmap=user -o uid=1000 -o gid=100 -o umask=0 -o allow_other -o ro

Copy Image via netcat

This is for a High-Bandwidth Network. If you have a Low-Bandwidth Network you can try to switch lzo with bzip2.

Target:
nc -v -l -p 19000 | lzop -c -d | pv -s 70G | dd bs=16M of=/root/foo.img

  1. listen on port 19000 for connections.
  2. decompress the datapackages.
  3. pv displays a status bar.
  4. and wirte them into a file.

Source:
dd bs=16M if=/root/bar.img | lzop -3 -c | nc -v 10.0.01 19000

  1. dd reads the file in 16MB Blocks.
  2. each block will be compressed with lzo.
  3. nc connects 10.0.01 on port 19000 and pushes data.