Hello,
Yes, it is the list_result() function in src/cats/sql.c that is a very
generic routine for outputting "list" results. I personally cannot be
of much help, but there are a good number of SQL experts using Bacula.
Best regards,
Kern
On 02/18/2016 10:29 AM, Wanderlei Huttel wrote:
> Hello Guys
>
> I was trying to create a function to convert seconds and bytes to more
> "human readable".
> If I'm right, the file that shows information in bconsole is
> src/cats/sql.c, function list_result.
>
> How the function list_result didn't check the name of fields, I guess is
> necessary to check the name of fields to implement this features, but I
> don't know where can I start. Any tips?
>
>
> if ( (strcasecmp(field->name, "VolRetention") == 0 ) ) {
> ...
> }
>
>
> ###########################################################################################
> #include "stdio.h"
> #include "stdlib.h"
> #include "math.h"
>
> char* seconds_to_humanreadable(float seconds, char *buf);
>
> int main (int argc, char *argv[]){
> char buf[32];
> float seconds;
> int i = 1;
> while( i < argc){
> seconds = atof(argv[i]);
> printf("%s\n", seconds_to_humanread( seconds, buf) );
> i++;
> }
> } /* end main */
>
>
> char* seconds_to_humanreadable(float seconds, char *buf) {
> if (seconds < 60) {
> sprintf(buf, "%.2f seconds", seconds);
> }
> else if (seconds >= 60 && seconds < 3600){
> sprintf(buf, "%.2f minutes", seconds/60);
> }
> else if (seconds >= 3600 && seconds < 86400){
> sprintf(buf, "%.2f hours", seconds/3600);
> }
> else if( seconds >= 86400 && seconds < 2628000){
> sprintf(buf, "%.2f days", seconds/86400);
> }
> else if( seconds >= 2628000 && seconds <= 31536000){
> sprintf(buf, "%.2f months", seconds/2628000);
> }
> else if(seconds > 31536000){
> sprintf(buf, "%.2f years", seconds/31536000);
> }
> else{
> sprintf(buf, "0");
> }
> return buf;
> } /*end function */
> ###########################################################################################
>
> #include "stdio.h"
> #include "stdlib.h"
> #include "math.h"
> #include "string.h"
>
> char* bytes_to_humanreadable(float bytes, char *buf);
>
> int main (int argc, char *argv[]){
> char buf[32];
> float bytes;
> int i = 1;
> while( i < argc){
> bytes = atof(argv[i]);
> printf("%s\n", bytes_to_humanread( bytes, buf) );
> i++;
> } /* end while */
> } /* end main */
>
>
> char* bytes_to_humanreadable(float bytes, char *buf) {
> int i = 0;
> const char* unit[] = {" ", "KB", "MB", "GB", "TB", "PB", "EB",
> "ZB", "YB", "BB"};
>
> while( true ){
> if ( bytes < 1024 ){
> sprintf(buf, "%.2f %s", bytes, unit[i]);
> return buf;
> }
> bytes = bytes / 1024;
> i++;
> } /* end while */
> } /*end function */
> ###########################################################################################
>
> Atenciosamente
>
> *Nome */|/***Wanderlei Hüttel*
> *Blog* | http://www.huttel.com.br
>
>
>
> 2016-02-17 20:25 GMT-02:00 Heitor Faria <heitor AT bacula.com DOT br
> <mailto:heitor AT bacula.com DOT br>>:
>
> 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 <kern AT sibbald DOT com
> <mailto:kern AT sibbald DOT 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
> <heitor AT bacula.com DOT br <mailto:heitor AT bacula.com DOT br>
> <mailto:heitor AT bacula.com DOT br <mailto:heitor AT bacula.com
> DOT 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 AT lists.sourceforge DOT net
> <mailto:Bacula-users AT lists.sourceforge DOT net>
> <mailto:Bacula-users AT lists.sourceforge DOT net
> <mailto:Bacula-users AT lists.sourceforge DOT 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 AT lists.sourceforge DOT net
> <mailto:Bacula-users AT lists.sourceforge DOT 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 AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users
|