On 3/14/25 4:03 AM, Stefan G. Weichinger via Bacula-users wrote:
Am 14.03.25 um 07:48 schrieb Stefan G. Weichinger via Bacula-users:

I use an 8-slot autoloader, I added a little bit of SQL to the query
file and just run that, it lists my tapes from last-used to most recent.
I grab the three oldest, move them to the Scratch pool, purge them,
and replace the three oldest in the autoloader with them.

Hello Stefan,

In a script, you can do:


echo -e "sql\nSELECT......ORDER BY volumename INC;\n\nquit\n" | bconsole


The echo -e: enable interpretation of backslash escapes

The `\n` in the script are line feeds.  The two `\n\n` in a row get you out of 
the bconsole SQL interface.


This method (echo -e) allows you to enter multiple bconsole commands in one 
session using echo.

And, to make things more clear with the long SQL query, you can split the query up, by appending backslashes to the end of each line like:
----8<----
echo -e "sql\nSELECT
Media.MediaId, Media.VolumeName, Media.PoolId, Pool.Name AS Pool, \
         Media.Slot, Media.Slot <> 0 AS InChanger, Media.FirstWritten, 
Media.LastWritten, \
         Media.VolStatus, GREATEST(0, (extract('epoch' from LastWritten + 
Media.VolRetention \
         * interval '1second' - NOW())::bigint)) as ExpiresIn, Media.VolBytes 
FROM Media \
         INNER JOIN Pool ON Media.PoolId = Pool.Poo;\n\nquit\n" | bconsole
----8<----


Hope this helps.
Bill

--
Bill Arlofski
w...@protonmail.com

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to