Hello Kern
,
I noticed that LastWritten value is stored in UTC. Therefore the results of
both queries are in UTC. These values can be converted to
the
database session
local times. Unfortunately, the local
time for a user issuing this query through bconsole can be different from
the database session local time (if the bconsole host is located in a
different time zone than the bacula database
server).
For a PostgreSQL bacula database:
# 21
:List Media for a selected Pool
*Enter Pool name:
SELECT MediaId,VolumeName,Media.VolRetention,Media.LastWritten
at time zone current_setting('TIMEZONE'),to_timestamp(extract('epoch' from
LastWritten)+Media.VolRetention) at time
zone
current_setting('TIMEZONE') as ExpiresAt
FROM Media,Pool
WHERE Name='%1' AND Media.PoolId=Pool.PoolId;
For a MySQL bacula database:
# 21
:List Media for a selected Pool
*Enter Pool name:
SELECT
MediaId,VolumeName,Media.VolRetention,CONVERT_TZ(Media.LastWritten,'+00:00',@@session.time_zone),CONVERT_TZ(FROM_UNIXTIME(UNIX_TIMESTAMP(Media.LastWritten)+Media.VolRetention),'+00:00',@@session.time_zone)
AS ExpiresAt
FROM Media,Pool
WHERE Name='%1' AND Media.PoolId=Pool.PoolId;
I removed the "+1" second from both queries since
the result
makes more sense to me. I run tests in a "+01:00" (CET)
time zone offset.
Best regards,
Ana
On Thu, Feb 18, 2016 at 8:44 AM, Kern Sibbald <k...@sibbald.com> wrote:
> Hello Ana,
>
> It may be possible that your code would work. However, please be aware
> that it was *very* complicated to get the current code to produce the right
> results. It is very easy to get an answer that is wrong by 1 hour or
> something like that.
>
> Thus anything that one would submit would need to be *really* well tested.
>
> Best regards,
> Kern
>
>
> On 02/18/2016 10:45 AM, Ana Emília M. Arruda wrote:
>
>> Hello Kern,
>>
>> Thank you for your clear explanation. I was thinking about an
>> "ExpiresAt" field instead of an "ExpiresIn". The meaning of an ExpiresIn
>> field is perfectly clear for me expressed in seconds. Also, I agree that
>> the results from bconsole commands should be less human-readable since
>> we have GUI interfaces for this purpose. IMHO these values should be in
>> a kind of raw format that can make their use easier with/in other
>> languages/frameworks.
>>
>> Maybe the bellow PostgreSQL/MySQL queries (included in query.sql) could
>> help with an "ExpiresAt" field:
>>
>> 21: List Media for a selected Pool
>> Choose a query (1-21): 21
>> Enter Pool name: File
>>
>> +---------+------------+--------------+---------------------+---------------------+
>> | mediaid | volumename | volretention | lastwritten |
>> expiresat |
>>
>> +---------+------------+--------------+---------------------+---------------------+
>> | 1 | Vol-0001 | 31,536,000 | 2016-01-21 23:10:03 | 2017-01-20
>> 23:10:04 |
>>
>> +---------+------------+--------------+---------------------+---------------------+
>>
>> For a PostgreSQL bacula database:
>>
>> # 21
>> :List Media for a selected Pool
>> *Enter Pool name:
>> SELECT
>>
>> MediaId,VolumeName,Media.VolRetention,Media.LastWritten,to_timestamp(extract('epoch'
>> from LastWritten)+Media.VolRetention+1) at time zone 'UTC' as ExpiresAt
>> FROM Media,Pool
>> WHERE Name='%1' AND Media.PoolId=Pool.PoolId;
>>
>>
>> For a MySQL bacula database:
>>
>> # 21
>> :List Media for a selected Pool
>> *Enter Pool name:
>> SELECT
>>
>> MediaId,VolumeName,Media.VolRetention,Media.LastWritten,FROM_UNIXTIME(UNIX_TIMESTAMP(LastWritten)+Media.VolRetention+1)
>> AS ExpiresAt
>> FROM Media,Pool
>> WHERE Name='%1' AND Media.PoolId=Pool.PoolId;
>>
>> I'm not sure about adding one second to this value...
>>
>> Am I misunderstanding something here?
>>
>> Thank you.
>>
>> Best regards,
>> Ana
>>
>>
>>
>> On Thu, Feb 18, 2016 at 12:58 AM, Kern Sibbald <k...@sibbald.com
>> <mailto:k...@sibbald.com>> wrote:
>>
>> Hello Heitor,
>>
>> One of the basic design conditions for Bacula is that as much as
>> possible that goes into it officially should be understandable and
>> maintainable by an average C/C++ programmer. Once things start
>> getting complicated, I slow down ...
>>
>> Best regards,
>> Kern
>>
>> On 02/18/2016 08:25 AM, Heitor Faria wrote:
>>
>> Kern,
>>
>> Sorry for the dumb question but could not bconsole make the values
>> conversion in similar way to this shell script bytes conversion
>> snippet
>> before printing?
>>
>> xargs -i echo 'scale=2; {}/1073741824' | bc
>>
>> May it would be a more database independent approach.
>>
>> Regards,
>>
>> ===========================================================================
>> Heitor Medrado de Faria - LPIC-III | ITIL-F | Bacula Systems
>> Certified
>> Administrator II
>> Do you need Bacula training?
>> <http://bacula.us/video-classes>http://bacula.us/video-classes/
>> +55 61 8268-4220 <tel:%2B55%2061%208268-4220>
>> Site: <http://bacula.us>http://bacula.us FB: heitor.faria
>>
>> ===========================================================================
>>
>> Enviado por TypeApp <http://www.typeapp.com/r>
>>
>> Em 17 de fev de 2016, em 20:05, Kern Sibbald <k...@sibbald.com
>> <mailto:k...@sibbald.com>
>> <mailto:k...@sibbald.com <mailto:k...@sibbald.com>>> escreveu:
>>
>>
>>
>> Hello Ana (and Heitor),
>>
>> Please note that at the current time, the list command is
>> generic, and
>> thus it only knows how to print character strings that have
>> been
>> returned by the SQL engine. Though there may be some way
>> to tell SQL
>> that the result we get for expiresin is a "duration" (note:
>> very
>> different from a date such as LastWritten), I do not know
>> how to do it.
>>
>> Thus for the moment, we are limited to displaying SQL
>> generated
>> character strings in the form that SQL gives them to us.
>>
>> The main point of the new expiresin field is that it is not
>> zero, the
>> retention period has not expired. If it is a big positive
>> number
>> (number of seconds remaining before the volume expires),
>> then the Volume
>> will not be recycled.
>>
>> Many people forget that the retention period *begins* from
>> the
>> LastWritten time, which means that as long as you are
>> writing on the
>> Volume, nothing will be expired. Maybe devoting a bit of
>> thought to
>> that particular point, and what would happen if we changed
>> it, would
>> make retention periods easier to understand.
>>
>> Best regards,
>> Kern
>>
>> On 02/16/2016 07:19 PM, Ana Emília M. Arruda wrote:
>>
>> Hello Kern and Heitor,
>>
>> I can see the ExpiresIn field in Bacula 7.4.0 version.
>> Maybe the ExpiresIn value could be more useful if
>> displayed in
>> the same
>> format as the LastWritten field.
>>
>> Best regards,
>> Ana
>>
>> On Tue, Feb 16, 2016 at 2:46 AM, Heitor Faria
>> <hei...@bacula.com.br <mailto:hei...@bacula.com.br>
>> <mailto:hei...@bacula.com.br
>>
>> <mailto:hei...@bacula.com.br>>> wrote:
>>
>> Recently I got tired of doing the mental
>> gymnastics
>> to see when Volumes
>> will expire and with Eric's SQL help, we
>> modified
>> the list (and llist)
>> media output to eliminate one or two of the
>> columns
>> in the case of list
>> media, but to add an "expiresin" field,
>> which makes
>> it much easier to
>> see when a volume will expire.
>>
>> This code has been in the public git
>> repository in
>> Branch-7.4 along with
>> a number of bug fixes since the 7.4.0
>> release. If
>> you are interested in
>> simplifying the Volume expiration mind
>> gymnastics
>> you might checkout and
>> try the new code.
>>
>> By the way, I thought that the above
>> feature was
>> added after the 7.4.0
>> release, but according to what I see in the
>> repo,
>> much to my surprise it
>> should also be in the released 7.4.0 version.
>>
>> I would be interested in any feedback.
>>
>>
>> Hello, Kern: this feature is great and I'm
>> thankful for
>> it, but is there a way
>> to make information human readable?
>>
>>
>> What do you mean?
>>
>> Please show me what you currently see and what you
>> prefer to
>> see.
>>
>>
>> Hello, Kern: sorry for being laconic.
>> When I mean "human readable" is in the sense of ls, df
>> and other
>> Linux commands:
>>
>> "-h, --human-readable
>> print sizes in human readable format (e.g., 1K 234M 2G)"
>>
>> *What I see today:*
>>
>> *list media pool=File
>>
>>
>> +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>> | MediaId | VolumeName | VolStatus | Enabled | VolBytes |
>> VolFiles | VolRetention | Recycle | Slot | InChanger |
>> MediaType |
>> LastWritten | ExpiresIn |
>>
>>
>> +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>> | 1 | Vol-0001 | Error | 1 | 1,286,119,412 |
>> 0 | 31,536,000 | 1 | 0 | 0 | File1 |
>> 2015-10-21 23:57:35 | 21,428,702 |
>>
>>
>> +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>>
>> *What I think would make the user life easier:*
>>
>> *list media pool=File human
>>
>>
>> +---------+------------+-----------+---------+----------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>> | MediaId | VolumeName | VolStatus | Enabled | VolBytes
>> | VolFiles |
>> VolRetention | Recycle | Slot | InChanger | MediaType |
>> LastWritten
>> | ExpiresIn |
>>
>>
>> +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>> | 1 | Vol-0001 | Error | 1 | 1,29 GB | 0
>> | 31,536,000 | 1 | 0 | 0 | File1 | 2015-10-21
>> 23:57:35 | 248 days |
>>
>>
>> +---------+------------+-----------+---------+----------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>>
>> Best regards,
>> Kern
>>
>>
>> Regards,
>> --
>>
>>
>> ------------------------------------------------------------------------
>>
>> Heitor Medrado de Faria - LPIC-III | ITIL-F | Bacula
>> Systems
>> Certified Administrator II
>> Do you need Bacula training?
>> http://bacula.us/video-classes/
>> +55 61 8268-4220 <tel:%2B55%2061%208268-4220>
>> <tel:%2B55%2061%208268-4220>
>> Site: http://bacula.us FB: heitor.faria
>>
>>
>> ------------------------------------------------------------------------
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> Site24x7 APM Insight: Get Deep Visibility into
>> Application
>> Performance
>> APM + Mobile APM + RUM: Monitor 3 App instances at just
>> $35/Month
>> Monitor end-to-end web transactions and take corrective
>> actions now
>> Troubleshoot faster and improve end-user experience.
>> Signup Now!
>> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>>
>>
>> ------------------------------------------------------------------------
>>
>> Bacula-users mailing list
>> Bacula-users@lists.sourceforge.net
>> <mailto:Bacula-users@lists.sourceforge.net>
>> <mailto:Bacula-users@lists.sourceforge.net
>> <mailto:Bacula-users@lists.sourceforge.net>>
>> https://lists.sourceforge.net/lists/listinfo/bacula-users
>>
>>
>>
>>
>>
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users