[Crash-utility] questions about crash utility

卜弋天 buyit at live.cn
Tue Jan 22 06:05:03 UTC 2013


thank you very much Dave, i have resolved this issue by using your code.your suggestion and explaination are very helpful.
 > Date: Mon, 21 Jan 2013 11:47:06 -0500
> From: anderson at redhat.com
> To: crash-utility at redhat.com
> Subject: Re: [Crash-utility] questions about crash utility
> 
> 
> 
> ----- Original Message -----
> 
> > anyway, i can just ignore this issue right now.
> > the remaining issue is how to make my procedures automatically.
> > my purpose is to get trace ring buffer from kernel dump file and create a new
> > file which name is like trace_$date.txt. the $date should be the time this text file
> > is generated.
> > what i am doing now is to create a .crashrc file in the ./ directory, and try to
> > use file to make everything automatically. i need to make below procedures 
> > automatically:
> > 1. load trace.so automatically. it is ok now.
> > 2. read current date. it is ok now.
> > 3. dump the kernel trace ring buffer into new text file the name of which contains current date. cannot do this now.
> > 4. exit crash utility automatically. it is ok now.
> > 
> > my .crashrc is as below, i don't know how to do the step 3 above:
> > 
> > ---------------------- script start -------------------------------------------------------
> > 
> > echo $(date '+%Y%m%d_%H%M%S') <------ it is ok
> > 
> > #cur=$(date '+%Y%m%d_%H%M%S') <----- it failed to use variable to store date
> > #echo $cur <------it failed
> > 
> > extend trace.so <------ it is ok
> > 
> > trace report >./report_test.txt <------- to dump to a file which uses fixed file name, it is ok.
> > 
> > 
> > trace report >./trace_$(date '+%Y%m%d_%H%M%S').txt  <--- it failed when exit
> > ---------------------- script end -----------------------------------------------
> > 
> > please help, thanks.
> 
> For a shell command, you would need to precede the command with a "|" or
> a "!".   But the variable assignment would not persist, because each line
> in the .crashrc (or any input file) is done as separate shell invocation.  
> 
> For example, this input file has four separate shell invocations:
> 
>  crash> !cat input
>  !cur=$(date '+%Y%m%d_%H%M%S'); echo $cur
>  !echo cur: $cur
>  |cur=$(date '+%Y%m%d_%H%M%S'); echo $cur
>  |echo cur: $cur
>  crash>
> 
> So the "echo" commands have no knowledge of the prior shell command's
> setting of the "cur" variable:
> 
>  crash> < input
>  20130121_112503
>  cur:
>  20130121_112503
>  cur:
>  crash> 
> 
> And with respect to this:
> 
>  crash> trace report >./trace_$(date '+%Y%m%d_%H%M%S').txt
> 
> When the command is invoked from within the crash utility, crash simply
> opens a file with the name "./trace_$(date '+%Y%m%d_%H%M%S').txt", and
> redirects the output to it.  The crash utility does not do any kind of
> parsing of the output file name for any embedded $(shell-cmd) or 
> `shell-cmd` usage.
> 
> Maybe you could do something like this in your .crashrc file:
> 
>  > trace_output
>  !ln trace_output $(date '+%Y%m%d_%H%M%S')
>  extend trace.so
>  trace report > trace_output
>  !rm -f output
> 
> Dave
> 
> 
> 
> 
> 
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20130122/03c7b10c/attachment.htm>


More information about the Crash-utility mailing list