Difference between revisions of "Useful Commands"

From Wikifications
Jump to: navigation, search
(added mailit script)
 
(One intermediate revision by the same user not shown)
Line 4: Line 4:
 
  -v = verbose
 
  -v = verbose
 
  -z = use compression (most useful across slow network links)
 
  -z = use compression (most useful across slow network links)
 +
-P = 'partial' mode; stores partially transfered files so you can resume if needed
  
 
The following copies the local directory /some/stuff into a directory called 'stuff' in the user's home dir on the remote host.
 
The following copies the local directory /some/stuff into a directory called 'stuff' in the user's home dir on the remote host.
  rsync -avz /some/stuff user@remote.host:stuff
+
  rsync -avzP /some/stuff user@remote.host:stuff
  
 
To go in the other direction, use the form:
 
To go in the other direction, use the form:
  rsync -av user@host.com:'/dir/1 /dir/2' /local/path
+
  rsync -avP user@host.com:'/dir/1 /dir/2' /local/path
  
 
====Data rescue====
 
====Data rescue====
Line 59: Line 60:
 
  defaults -currentHost write com.apple.screensaver moduleName -string foo
 
  defaults -currentHost write com.apple.screensaver moduleName -string foo
 
  defaults -currentHost write com.apple.screensaver modulePath -string "~/Library/Screen Savers/foo.saver"
 
  defaults -currentHost write com.apple.screensaver modulePath -string "~/Library/Screen Savers/foo.saver"
 +
 +
====Mail Server Testing====
 +
Use this to generate a bunch of messages with attachments.
 +
 +
find / -name "*.jpg" -print -exec ./mailit.sh {} \;
 +
 +
with mailit.sh containing the following. Edit the email address as needed.
 +
 +
#!/bin/sh
 +
# path comes in as only arg
 +
BASE=`basename "$1"`
 +
uuencode "$1" $BASE | mail -s $BASE netuser1@server100.4952

Latest revision as of 16:54, 20 June 2009

Rsync

Use it just like scp for maximum ease! We will add the -avz flags for

-a = archive, preserve metadata
-v = verbose
-z = use compression (most useful across slow network links)
-P = 'partial' mode; stores partially transfered files so you can resume if needed

The following copies the local directory /some/stuff into a directory called 'stuff' in the user's home dir on the remote host.

rsync -avzP /some/stuff user@remote.host:stuff

To go in the other direction, use the form:

rsync -avP user@host.com:'/dir/1 /dir/2' /local/path

Data rescue

Have a dying disk? Better get the data off before it's too late! disk1 is the culprit in this example.

dd conv=noerror,sync if=/dev/disk1 of=/Volumes/whatever/backup.dmg

Zip files with resource forks

ditto -c -k --keepParent aFolder aFolder.zip

Encrypted and growable (sparse) disk image

(-size specifies max growth)

hdiutil create dmg_name -size 1g -encryption -type SPARSE -fs HFS+ -volname Vault

Global find / replace

perl -pi -e 's/foo/bar/g' file
perl -pi -e 's/mandir=\'\${prefix}\/man\'/mandir=\'\${prefix}\/share\/man\'/g' configure

====Disk Stats==== (zsh)

echo -n "Sum of all HFS and AFP volumes in gigs: " ; x=0 ; df -t hfs,afpfs | grep "/" \
| awk '{print $2}' | sed 's/G//g' | while read line ; do x=($line + $x); done ; echo "($x) / 1024 / 1024 / 2" | bc

Get console idle time

echo $((`ioreg -c IOHIDSystem | sed -e '/HIDIdleTime/ !{ d' -e 't' -e '}' -e 's/.* = //g' -e 'q'` / 1000000000))

System Tuning

Any of these can be set manually with:

sudo sysctl -w sysctl.key=value

Place the following in /etc/sysctl.conf and reboot to boost your limits

# values increased by 2x over defaults
kern.maxfiles=24576
kern.maxfilesperproc=20480
kern.maxprocperuid=200
kern.maxproc=1064

debugging / hidden preferences

iChat Logging
defaults write com.apple.iChat Log YES
defaults write com.apple.iChat Log.SecureIM YES
defaults write com.apple.iChatAgent Log YES
defaults write com.apple.iChatAgent Log.SecureIM YES
/Applications/iChat.app/Contents/MacOS/iChat -errorLogLevel 7
Mail logging
/Applications/Mail.app/Contents/MacOS/Mail -LogActivityOnHost bar.company.com
Screen Saver
defaults -currentHost write com.apple.screensaver askForPassword -boolean true
defaults -currentHost write com.apple.screensaver moduleName -string foo
defaults -currentHost write com.apple.screensaver modulePath -string "~/Library/Screen Savers/foo.saver"

Mail Server Testing

Use this to generate a bunch of messages with attachments.

find / -name "*.jpg" -print -exec ./mailit.sh {} \;

with mailit.sh containing the following. Edit the email address as needed.

#!/bin/sh
# path comes in as only arg
BASE=`basename "$1"`
uuencode "$1" $BASE | mail -s $BASE netuser1@server100.4952