I'm sure some people can improve greatly on this but it may get you started.
The commands you need are probably find for scanning and determining the list of files to backup, and then tar, cpio, or zip for archiving depending on your preferences.
I will modify your spec a bit to scan directories but not individual files.
Let's suppose /etc/backupdirlist.txt contains a list of directories to scan
and /media/backup is the mount point of the backup media (already mounted)
and /media/backup/backups is an already existing directory into which you want the backups and filelists placed.
The seven day requirement is not difficult to meet if you use the day of the week as the destination file name in the backup process and write over the old ones.
You need something about like this
(note: untested, may have bugs, apologies if it does something stupid, GNU LGPL License and standard disclaimer applies)
I suggest going over this one command at a time, and examining the variables with echo $VAR or the files with less to see what it does. Also read the man pages for find and cpio.
#!/bin/bash
DIRLIST=/etc/backupdirlist.txt
DAYOFWEEK=`date +%a`
FILELISTDEST=/media/backup/backups/$DAYOFWEEK.filelist
BACKUPDEST=/media/backup/backups/$DAYOFWEEK.backup.tgz
TIMELIMIT=-1 # says save everything modified less than or equal to one day ago
echo >$FILELISTDEST # to erase last weeks list
for DIR in `cat $DIRLIST`
do find $DIR -mtime $TIMELIMIT >>$FILELISTDEST # >> appends the lists
done
cat $FILELISTDEST | cpio --create --format=ustar | gzip -9 -c >$BACKUPDEST
I haven't explained how to put this script into cron, I'll leave that to you or another participant. Make sure it works and does what you want as a script, first, before automating it.
On the different unix boxes there can be variations in manufacturer's versions of standard utilities like find or cpio. The best way around this is to install the GNU versions on all platforms. Linux already has the GNU versions.
Hope this helps!