2 Apr
Mint!!
21 Feb
Bash Script: Time, Tar, Date & Email
As im trying to learn bash scripting its easier if you have a little idea of a script that can be useful to you. For this example I want to backup a set of files/directories and have the script email me with the date, contents of the tar and the time it took to run the process…not as easy as it looks due to the “time command” outputting to stderr. The script can then be used as a cron job.
#!/bin/bash
set -e
set -u
DATESTAMP=`date ‘+%d_%m_%Y-%H%M’` #Date will appear in day_month_year-hour&min format
EMAIL=”user@uni.edu.au” #Define an email address for mail to use
SUBJECT=”Backup completed for PC-HTPC $DATESTAMP” #Create a subject for the mail including the date defined above
ARCHIVE=”backup_$DATESTAMP.tar.gz” #Create a name for the tarfile including the date defined above
BODY=`(time tar -cvpzf $ARCHIVE test*) 2>&1`#The tar command (including being timed) and redirecting stderr to stdout
echo -e “$ARCHIVE\n\n$BODY” | mail -s “$SUBJECT” “$EMAIL” #Using the variables archive and body and using the mail command to send the email
15 Feb
Using sed to remove lines
So you have the following list of email addresses in the syntax user@uni.edu.au and you want to strip out everything after the @ sign leaving you will a list of usernames. The user names need then to be on one line only.
So for example if the file called “email_list” looked like this:
test1@uni.edu.au
test2@uni.edu.au
test3@uni.edu.au
To get the first part working:
# cat email_list | sed ‘s/@.*//’
Meaning everything after the @ replace with nothing.
You will get a list like this:
test1
test2
test3
….but we want the output all on one line to be able to copy and paste it:
# echo $(cat email | sed ‘s/@.*//’)
Now you get:
test1 test2 test3
14 Feb
Bash Script 1.2
#!/bin/bash
set -e
set -u
# Removed the _SRC_ROOT variable and replaced with input defined by the user
if [ $# -ge 1 ] && [ -d $1 ]; then
_SRC_ROOT=$1
else
echo “No valid directory provided, please use ./src-sanity-check <directory>. Script is exiting”
exit 1
fi
_ACTION=all
if [ $# -ge 2 ]; then
_ACTION=$2
fi
function list_src_dirs {
find $_SRC_ROOT -type d -printf ‘%m\t%u\t%g\t%p\n’ 2>/dev/null | \
sed ‘/\/__/d; /RCS$/d’
}
function list_src_dirs_perm_err {
list_src_dirs | sed -nr ‘/\t(source|sys)\t/p’ | sed -r ‘/^277[05]/d’ | sort -k 2
}
echo $_SRC_ROOT
echo $_ACTION
When you define a directory or any information along with the script its assigned a value, for example:
./src-sanity-check.sh /src/config/redhat
/src/config/redhat will be defined as $1
Example:
./src-sanity-check.sh /src/config/redhat xxx
xxx will be defined as $2
so:
if [ $# -ge 1 ] && [ -d $1 ]; then
_SRC_ROOT=$1
This means if the $# input is greater or equal to 1 and is a directory then assign the value of $1 to _SRC_ROOT (which can be used later)
else
echo “No valid directory provided, please use ./src-sanity-check <directory>. Script is exiting”
exit 1
fi
So, if a value is not assigned to $1 provide the error stated above and exit the script.
We then define a new variable:
_ACTION=all
and start the next if statement:
if [ $# -ge 2 ]; then
_ACTION=$2
fi
Meaning if the second input $2 is defined then assign this value to _ACTION
Currently at the end of the script the two values are called:
echo $_SRC_ROOT
echo $_ACTION
Obviously this will be changed later.
24 Jan
uTorrent Error: Access is Denied (Windows 7)
Ive recently seen an error in uTorrent when downloading a specific file getting the error “Access is denied”. Strangely it was only for one file, all others seem to be working ok. It appears there are some compatibility error with uTorrent and Windows 7.
To resolve the error complete the following:
1: Right click on the utorrent.exe file and select “Properties”
2: Select the “Compatibility” tab
3: Check “Run this program in compatibility mode for:” and select “Vista” from the drop down menu
4: Select “Run this program as administrator” under “Privilege Level” at the bottom of the box.
5: Restart utorrent and you should be all good!
20 Jun
Forgotten User Password in Vista?
Had a call from my mate over the weekend who had forgotten his user password in Windows Vista. Luckily he was still able to get into his account as he has fingerprint entry enabled, however he still couldnt remember his password. Searching around on the web there are a few solutions but I found this one the easiest:
1: Create a new “Administrator” account
2: Switch to this account
3: Go to Start, then in the run box enter “control userpasswords2”
4: A dialogue box will open, select the user account you want to change the password of and change it! You will not need your current password to do this 🙂
5: Switch back to the troublesome account and test your new password!
6: You can delete your temporary admin account now if so desired!
Recent Comments