I've used the following method before to check if a filesystem is mounted: 1) put a hidden file in the mounted filesystem, for instance .goodfile.txt
2) put something like this in a script: if [ -f /path/to/filesystem/.goodfile.txt ] then echo "filesystem is mounted properly" You could also check if .goodfile.txt is *not* there with: if [ ! -f /path/to/filesystem/.goodfile.txt ] -Rob Stephen Joyce wrote: > Use 'mount' instead of checking for directory existence to determine if the > filesystem is mounted and return the corresponding exit status? (if > backuppc has created the directory structure on the main drive instead of > a mounted one, it's safe to remove inside the script. Use 'rm' on each > level working your way up, NOT 'rm -rf' on the parent, if you're paranoid > or don't fully trust your script.) > > Or am I misunderstanding the problem? > > Cheers, Stephen > -- > Stephen Joyce > Systems Administrator P A N I C > Physics & Astronomy Department Physics & Astronomy > University of North Carolina at Chapel Hill Network Infrastructure > voice: (919) 962-7214 and Computing > fax: (919) 962-0480 http://www.panic.unc.edu > > Some people make the world turn and others just watch it spin. > -- Jimmy Buffet > > On Thu, 20 Sep 2007, Kimball Larsen wrote: > >> Ok, I've done a bunch more research into this, and discovered the problem: >> >> backuppc creates the target directories for the backup destination BEFORE it >> calls BackupPC_dump, so my pre conditions are always returning true, because >> BackupPC just created the necessary file structure. >> >> So, I'm looking for either a) where is the check that decides to create the >> file structure before doing a dump or b) how to re-arrange my setup so that >> backupPC just fails if the destination for the backup does not exist. >> >> Again, here's my setup: >> >> /Volumes/Honker <-- this is an external hard drive that is only mounted >> periodically. When it is not mounted, /Volumes does NOT have a "Honker" >> directory. >> >> >> here's with my external drive disconnected: >> MainEngineering:/Volumes root# pwd >> /Volumes >> MainEngineering:/Volumes root# ls -la >> total 8 >> drwxrwxrwt 3 root admin 102 Sep 20 14:57 . >> drwxr-xr-x 31 root wheel 1156 Sep 18 12:21 .. >> lrwxr-xr-x 1 root admin 1 Sep 18 12:21 Guido -> / >> MainEngineering:/Volumes root# >> >> >> and again with it connected: >> MainEngineering:/Volumes root# ls -la >> total 8 >> drwxrwxrwt 4 root admin 136 Sep 20 14:58 . >> drwxr-xr-x 31 root wheel 1156 Sep 18 12:21 .. >> lrwxr-xr-x 1 root admin 1 Sep 18 12:21 Guido -> / >> drwxr-xr-x 8 unknown unknown 374 Sep 20 14:45 Honker >> MainEngineering:/Volumes root# >> >> >> The problem is that if a Honker directory exists in /Volumes, then when I >> attach the drive, it mounts as Honker-1, so my backups don't get to the >> right >> file system. >> >> Help! >> >> -- Kimball >> On Sep 20, 2007, at 1:24 PM, Kimball Larsen wrote: >> >>> (Sorry for the re-post - I realized I forgot to put on a subject last time) >>> >>> Hokay, I'm stuck. I give. I need help. >>> >>> The documentation for UserCmdCheckStatus says: >>> >>> "Whether the exit status of each PreUserCmd and PostUserCmd is checked. >>> >>> "If set and the Dump/Restore/Archive Pre/Post UserCmd returns a non-zero >>> exit status then the dump/restore/archive is aborted. To maintain backward >>> compatibility (where the exit status in early versions was always ignored), >>> this flag defaults to 0. >>> >>> "If this flag is set and the Dump/Restore/Archive PreUserCmd fails then >>> the matching Dump/Restore/Archive PostUserCmd is not executed. If >>> DumpPreShareCmd returns a non-exit status, then DumpPostShareCmd is not >>> executed, but the DumpPostUserCmd is still run (since DumpPreUserCmd must >>> have previously succeeded). >>> >>> "An example of a DumpPreUserCmd that might fail is a script that >>> snapshots or dumps a database which fails because of some database error." >>> >>> >>> Simple enough - so I wrote a script to verify that the location to which I >>> am about to try to backup actually exists (I'm backing up to a removable >>> drive that does get removed, from time to time, and I only want the backups >>> to run when the drive is attached). Then I set this script to the value >>> for the various Pre conditions: >>> >>> $Conf{DumpPreUserCmd} = '$sshPath -q -x -l kimball $host >>> /usr/local/bin/checkHonker'; >>> $Conf{DumpPostUserCmd} = undef; >>> $Conf{DumpPreShareCmd} = '$sshPath -q -x -l kimball $host >>> /usr/local/bin/checkHonker'; >>> $Conf{DumpPostShareCmd} = undef; >>> $Conf{RestorePreUserCmd} = '$sshPath -q -x -l kimball $host >>> /usr/local/bin/checkHonker'; >>> $Conf{RestorePostUserCmd} = undef; >>> $Conf{ArchivePreUserCmd} = '$sshPath -q -x -l kimball $host >>> /usr/local/bin/checkHonker'; >>> $Conf{ArchivePostUserCmd} = undef; >>> >>> and I set it to check the status of the user commands: >>> >>> $Conf{UserCmdCheckStatus} = 1; >>> >>> But it still runs the backup (and writes over my mount point for my >>> external drive) >>> >>> I've verified that the script returns a non-zero when the drive is not >>> present: >>> >>> sillyHost:~ backuppc$ /usr/bin/ssh -q -x -l kimball 192.168.0.21 >>> /usr/local/bin/checkHonker >>> Checking for Honker >>> Honker NOT mounted >>> sillyHost:~ backuppc $ echo $? >>> 1 >>> >>> >>> What am I missing? >>> >>> -- Kimball >>> >>> ------------------------------------------------------------------------- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________ >>> BackupPC-users mailing list >>> BackupPC-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/backuppc-users >>> http://backuppc.sourceforge.net/ >> >> >> -- >> > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > BackupPC-users mailing list > BackupPC-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/backuppc-users > http://backuppc.sourceforge.net/ ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ BackupPC-users mailing list BackupPC-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/backuppc-users http://backuppc.sourceforge.net/