Hal Vaughan wrote:
> I have a system with several different users and would like to use
> cron to run this script as root:
>
> #!/bin/bash
>
> for user in `ls /home/`; do
> # echo "Path: $user"
> if [ "${user:0:1}" != "0" ]; then
> path="/home/$user/Backup"
> if [ -e $path ]; then
> echo "Calling backup for user: $user"
> sudo -u $user /usr/local/bin/user-backup
> fi
> fi
> donePersonally if I were writing this then if the script is running as root then instead of using 'sudo' here I would use 'su' instead. su -c /usr/local/bin/user-backup $user Mostly because su is more traditional and "more core" than sudo and just seems like the better fit for the job. But it is a matter of taste here. > The idea is that instead of adding a backup script every time I add > a user, this script will go through the /home directories and skip > any that start with a 0 (a program I'm using creates some > directories there, but starts their names with a 0) and > automatically call the generic backup script for that user. Seems reasonable so far. Also you should skip directories called "lost+found" in the case that /home happens to be a mount point on a filesystem such as ext[23] that uses lost+found. > The problem is sudo can't be run without a tty, so I can run it > myself, but it won't run from a script. Using 'su' would solve that problem. > Any other way I can do this? There are distinct advantages to a backup push system. Not proposing that you change away from it. But I tend to pull backups from /home to the backup server. This means that whatever is in /home comes over whether it is associated with a user's home directory or not. All I manage is machines. Not machines and users. Bob
signature.asc
Description: Digital signature

