Skip to main content

Useful Commands

This page is to share commands / arguments that makes life easier.

 

Rsync

rsync -vaopHDS --stats --ignore-existing -P (Source) (Destination) 

-v, --verbose
-a, --archive (It is a quick way of saying you want recursion and want to preserve almost everything.)
-o, --owner
-H, --hard-links
-D, --devices (This option causes rsync to transfer character and block device information to the remote system to recreate these devices.)
-S, --sparse (Try to handle sparse files efficiently so they take up less space on the destination.)
-P (The -P option is equivalent to --partial --progress.)

Fixing perms for a website

find /home/USERNAME/public_html/ -type f -exec chmod 644 {} \; && find /home/USERNAMER/public_html/ -type d -exec chmod 755 {} \;

DDrescue

ddrescue -f -n -r3 /dev/[bad/old_drive] /dev/[good/new_drive] /root/recovery.log

-f   Force ddrescue to run even if the destination file already exists (this is required when writing to a disk). It will overwrite.

-n   Short for’–no-scrape’. This option prevents ddrescue from running through the scraping phase, essentially preventing the utility from spending too much time attempting to recreate heavily damaged areas of a file.

-r3   Tells ddrescue to keep retrying damaged areas until 3 passes have been completed. If you set ‘r=-1’, the utility will make infinite attempts. However, this can be destructive, and ddrescue will rarely restore anything new after three complete passes.

SSH tunneling

-L = local, the 666 will be the port that will be opened on the localhost and the 8080 is the port listening on the remote host (192.168.1.100 example). -N = do nothing

ssh root@my-server.com -L 666:192.168.1.100:8080
AutoSSH

Autossh is a tool that sets up a tunnel and then checks on it every 10 seconds. If the tunnel stopped working autossh will simply restart it again. So instead of running the command above you could run

autossh -NL 8080:127.0.0.1:80 root@192.168.1.100

sshutle

sudo sshuttle -r root@sshserver.com:2222 0/0
sudo sshuttle --dns -r root@sshserver.com 0/0

Force reinstall all arch packages

pacman -Qqen > pkglist.txt
pacman --force -S $(< pkglist.txt)

Check Mobo info

dmidecode --string baseboard-product-name

More Details:

 dmidecode | grep -A4 'Base Board'

Check BIOS version

dmidecode | grep Version | head -n1

Temp Python FTP WebServer

python -m SimpleHTTPServer 8000

Find what is taking all the space

List of the biggest directory's
du -Sh / | sort -rh | head -5
List of the biggest files
find /* -type f -exec du -Sh {} + | sort -rh | head -n 5

Put a +2TB drive in GPT

Start parted on the drive you want in gpt

parted /dev/sdd
mklabel gpt 
unit TB
mkpart primary 0.00TB 16.00TB
print

Unable to mount Windows (NTFS) filesystem due to hibernation

Fix ntfs

ntfsfix /dev/sdXY

Mount read-only

mount -t ntfs-3g -o ro /dev/sdXY /mnt/windows

Repair rpm DB

rm -f /var/lib/rpm/__db*
db_verify /var/lib/rpm/Packages
rpm --rebuilddb
yum clean all

Stresstestapp

Install the app from source:

git clone https://github.com/stressapptest/stressapptest.git
cd stressapptest
./configure
make
sudo make install
stressapptest -s 10800 -W -v 9 --cc_test --random-threads --local_numa --remote_numa --stop_on_errors >> /root/stresstest-test-01.txt

( 10800 = 3 hours )

Create a ISO from a folder

mkisofs -o XYZ.iso XYZ/