A Script to Backup Users' Home Directories:
Code:
for USER in `ls -1 /home | grep -vF 'lost+found'`; do
tar -vzcf /tmp/${USER}.tar.gz /home/${USER}
done
Note: Change the paths per your file-system/paths.
A Sample Run of the Script:
Code:
Verify the result/output:
[demo@localhost ~]$ ls -ltrh /tmp/*.gz
-rw-rw-r--. 1 demo demo 21M Feb 3 21:29 /tmp/demo.tar.gz
-rw-rw-r--. 1 demo demo 1.5K Feb 3 21:29 /tmp/lsdev.tar.gz
-rw-rw-r--. 1 demo demo 45 Feb 3 21:29 /tmp/test.tar.gz
[demo@localhost ~]$ file /tmp/demo.tar.gz
/tmp/demo.tar.gz: gzip compressed data, from Unix, last modified: Fri Feb 3 21:28:52 2012
[demo@localhost ~]$
You can have another script to delete old backed up files.
Code:
[demo@localhost ~]$ find /tmp -name "*.tar.gz" -mtime -1 -print0 2>/dev/null | xargs -0 file 2>/dev/null
/tmp/demo.tar.gz: gzip compressed data, from Unix, last modified: Fri Feb 3 21:28:52 2012
/tmp/lsdev.tar.gz: gzip compressed data, from Unix, last modified: Fri Feb 3 21:29:01 2012
/tmp/test.tar.gz: gzip compressed data, from Unix, last modified: Fri Feb 3 21:29:01 2012
Note 1: -mtime -1 = Files modified within 24 hours / 1 day. Change it to +7 or +30 to mean files last modified +7 or +30 days old.
More Details:
man find
Note 2: the "file" command is used to describe briefly about the file type.
Now I am going to use "rm" command to remove them instead:
Code:
[demo@localhost ~]$ find /tmp -name "*.tar.gz" -mtime -1 -print0 2>/dev/null | xargs -0 rm 2>/dev/null
Verify:
Code:
[demo@localhost ~]$ find /tmp -name "*.tar.gz" -mtime -1 -print0 2>/dev/null | xargs -0 file 2>/dev/null
[demo@localhost ~]$
Files deleted!
Well, I think I have worked enough for you to help you. Now consider giving me $100.
Cheers!