Sorry, the correct form should be "$@":

#!/bin/sh -f
exec /bin/tar -c "$@"

(Note that you want to force tar to have the -c option, not exec).

Craig



On Sun, Apr 26, 2020 at 5:14 AM Graham Seaman <gra...@theseamans.net> wrote:

> Hi Craig
>
> I set sudoers to allow backuppc to run tar as root with no password, and
> incremental backups work fine.
>
> This is only marginally less secure than the old setup, which allowed
> backuppc to run the script which called tar, so I guess I can live with
> this.
>
> But in case you have any other ideas, here's my tiny script that's now
> definitely what's causing the problem (the quote marks are double quotes,
> not two single quotes):
>
> #!/bin/sh -f
>
> exec -c /bin/tar "$*"
>
>
> Graham
>
>
> On 26/04/2020 04:09, Craig Barratt via BackupPC-users wrote:
>
> It would be helpful if you included the edited script in your reply.  Did
> you use double quotes, or two single quotes?
>
> I'd recommend trying without the script, just the make sure it works
> correctly.  Then you can be sure it's an issue with how the script
> handles/splits arguments.
>
> Craig
>
> On Sat, Apr 25, 2020 at 2:49 PM Graham Seaman <gra...@theseamans.net>
> wrote:
>
>> Craig
>>
>> Quoting $* gives me a new error:
>>
>> /bin/tar: invalid option -- ' '
>>
>> (I get exactly the same error whether I use $incrDate or $incrDate+)
>>
>> That script is to avoid potential security problems from relaxing the
>> rules in sudoers, so I'd rather not get rid of it, but I'm a bit surprised
>> no-one else has the same problems (and that it apparently used to work for
>> me once)
>>
>> Graham
>>
>>
>> On 25/04/2020 17:59, Craig Barratt via BackupPC-users wrote:
>>
>> Graham,
>>
>> Your script is the problem.  Using $* causes the shell the resplit
>> arguments at whitespace.  To preserve the arguments you need to put that in
>> quotes:
>>
>> exec /bin/tar -c "$*"
>>
>> Craig
>>
>> On Sat, Apr 25, 2020 at 5:04 AM Graham Seaman <gra...@theseamans.net>
>> wrote:
>>
>>> Thanks Craig
>>>
>>> That's clearly the problem, but I'm still mystified.
>>>
>>> I have backuppc running on my home server; the storage is on a NAS NFS
>>> mounted on the home server. Backing up other hosts on my network (both
>>> full and incremental) over rsync works fine.
>>>
>>> The home server backs up using tar. The command in the log is:
>>>
>>> Running: /usr/bin/sudo /etc/backuppc/localtar/tar_create.sh -v -f - -C
>>> /etc --totals --newer=2020-04-22 21:18:10 .
>>>
>>> If I set
>>>
>>>  $Conf{TarIncrArgs} = '--newer=$incrDate+ $fileList+';
>>>
>>>
>>> then incremental backups of the home server fail with:
>>>
>>> /bin/tar: Substituting -9223372036854775807 for unknown date format
>>> ‘2020-04-22\\’
>>> /bin/tar: 21\:18\:10: Cannot stat: No such file or directory
>>>
>>> If instead I set:
>>>
>>> $Conf{TarIncrArgs} = '--newer=$incrDate $fileList';
>>>
>>> then incremental backups fail with:
>>>
>>> /bin/tar: Option --after-date: Treating date '2020-04-22' as 2020-04-22
>>> 00:00:00
>>> /bin/tar: 21\:18\:10: Cannot stat: No such file or directory
>>>
>>> Could it be to do with my localtar/tar_create.sh? (I created this so
>>> long ago I no longer remember where it came from).
>>>
>>> This is just:
>>>
>>> #!/bin/sh -f
>>> exec /bin/tar -c $*
>>>
>>> Thanks again
>>>
>>> Graham
>>>
>>> On 25/04/2020 02:59, Craig Barratt via BackupPC-users wrote:
>>> > Graham,
>>> >
>>> > This is a problem with shell (likely ssh) escaping of arguments that
>>> > contain a space.
>>> >
>>> > For incremental backups a timestamp is passed as an argument to tar
>>> > running on the client.  The argument should be a date and time, eg:
>>> >
>>> >     --after-date 2020-04-22\ 21:18:10'
>>> >
>>> > Notice there needs to be a backslash before the space, so it is part of
>>> > a single argument, not two separate arguments.
>>> >
>>> > You can tell BackupPC to escape an argument (to protect it from passing
>>> > via ssh) by adding a "+" to the end of the argument name, eg:
>>> >
>>> >     $Conf{TarIncrArgs} = '--newer=$incrDate+ $fileList+';
>>> >
>>> >
>>> > Craig
>>> >
>>> > On Fri, Apr 24, 2020 at 3:17 PM Graham Seaman <gra...@theseamans.net
>>> > <mailto:gra...@theseamans.net>> wrote:
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >     Ok, I guess its this (from the start of XferLOG.bad):
>>> >
>>> >     /bin/tar: Option --after-date: Treating date '2020-04-22' as
>>> 2020-04-22
>>> >     00:00:00
>>> >     /bin/tar: 21\:18\:10: Cannot stat: No such file or directory
>>> >
>>> >     which is kind of confusing, as it goes on to copy the rest of the
>>> >     directory and then says '0 Errors'. Anyway, its correct that there
>>> is no
>>> >     file called '21:18:10'. Any idea why it thinks there should be?
>>> >
>>> >     Graham
>>> >
>>> >
>>> >     On 24/04/2020 20:59, Craig Barratt via BackupPC-users wrote:
>>> >     > Graham,
>>> >     >
>>> >     > Tar exit status of 512 means it encountered some sort of error
>>> >     (eg, file
>>> >     > read error) while it was running on the target client.  Please
>>> look at
>>> >     > the XferLOG.bad file carefully to see the specific error from
>>> tar.
>>> >     >
>>> >     > If you are unable to see the error, please send me the entire
>>> >     > XferLOG.bad file?
>>> >     >
>>> >     > Craig
>>> >     >
>>> >     > On Fri, Apr 24, 2020 at 12:13 PM Graham Seaman
>>> >     <gra...@theseamans.net <mailto:gra...@theseamans.net>
>>> >     > <mailto:gra...@theseamans.net <mailto:gra...@theseamans.net>>>
>>> wrote:
>>> >     >
>>> >     >     I have a persistent problem with backing up one host: I can
>>> do
>>> >     a full
>>> >     >     backup, but an incremental backup fails on trying to transfer
>>> >     the first
>>> >     >     directory:
>>> >     >
>>> >     >     tarExtract: Done: 0 errors, 2 filesExist, 81381 sizeExist,
>>> 18122
>>> >     >     sizeExistComp, 2 filesTotal, 81381 sizeTotal
>>> >     >     Got fatal error during xfer (Tar exited with error 512 ()
>>> status)
>>> >     >     Backup aborted (Tar exited with error 512 () status)
>>> >     >
>>> >     >     All other hosts work ok. So I'm guessing it must be a file
>>> >     permission
>>> >     >     error. Looking at the files, everything seems to be owned by
>>> >     >     backuppc.backuppc, so I don't know where/what else to look
>>> >     for. Any
>>> >     >     suggestions?
>>> >     >
>>> >     >     Thanks
>>> >     >     Graham
>>> >     >
>>> >     >
>>> >     >     _______________________________________________
>>> >     >     BackupPC-users mailing list
>>> >     >     BackupPC-users@lists.sourceforge.net
>>> >     <mailto:BackupPC-users@lists.sourceforge.net>
>>> >     >     <mailto:BackupPC-users@lists.sourceforge.net
>>> >     <mailto:BackupPC-users@lists.sourceforge.net>>
>>> >     >     List:
>>> >     https://lists.sourceforge.net/lists/listinfo/backuppc-users
>>> >     >     Wiki:    http://backuppc.wiki.sourceforge.net
>>> >     >     Project: http://backuppc.sourceforge.net/
>>> >     >
>>> >     >
>>> >     >
>>> >     > _______________________________________________
>>> >     > BackupPC-users mailing list
>>> >     > BackupPC-users@lists.sourceforge.net
>>> >     <mailto:BackupPC-users@lists.sourceforge.net>
>>> >     > List:
>>> https://lists.sourceforge.net/lists/listinfo/backuppc-users
>>> >     > Wiki:    http://backuppc.wiki.sourceforge.net
>>> >     > Project: http://backuppc.sourceforge.net/
>>> >     >
>>> >
>>> >
>>> >     _______________________________________________
>>> >     BackupPC-users mailing list
>>> >     BackupPC-users@lists.sourceforge.net
>>> >     <mailto:BackupPC-users@lists.sourceforge.net>
>>> >     List:
>>> https://lists.sourceforge.net/lists/listinfo/backuppc-users
>>> >     Wiki:    http://backuppc.wiki.sourceforge.net
>>> >     Project: http://backuppc.sourceforge.net/
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > BackupPC-users mailing list
>>> > BackupPC-users@lists.sourceforge.net
>>> > List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
>>> > Wiki:    http://backuppc.wiki.sourceforge.net
>>> > Project: http://backuppc.sourceforge.net/
>>> >
>>>
>>>
>>> _______________________________________________
>>> BackupPC-users mailing list
>>> BackupPC-users@lists.sourceforge.net
>>> List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
>>> Wiki:    http://backuppc.wiki.sourceforge.net
>>> Project: http://backuppc.sourceforge.net/
>>>
>>
>>
>> _______________________________________________
>> BackupPC-users mailing listbackuppc-us...@lists.sourceforge.net
>> List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
>> Wiki:    http://backuppc.wiki.sourceforge.net
>> Project: http://backuppc.sourceforge.net/
>>
>> _______________________________________________
>> BackupPC-users mailing list
>> BackupPC-users@lists.sourceforge.net
>> List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
>> Wiki:    http://backuppc.wiki.sourceforge.net
>> Project: http://backuppc.sourceforge.net/
>>
>
>
> _______________________________________________
> BackupPC-users mailing listbackuppc-us...@lists.sourceforge.net
> List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
> Wiki:    http://backuppc.wiki.sourceforge.net
> Project: http://backuppc.sourceforge.net/
>
> _______________________________________________
> BackupPC-users mailing list
> BackupPC-users@lists.sourceforge.net
> List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
> Wiki:    http://backuppc.wiki.sourceforge.net
> Project: http://backuppc.sourceforge.net/
>
_______________________________________________
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki:    http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/

Reply via email to