
    ~ g                     j    S SK r S SKJrJrJrJr   " S S\5      r " S S\\5      r " S S\\5      rg)	    N)Plugin	PluginOptIndependentPlugin	CosPluginc                   ,    \ rS rSrSrSrSrS rS rSr	g)	LogsBase   zSystem logslogssystemhardwarestoragec                 ,  ^  SnSU/n/ nT R                  U5      (       a|  [        T R                  U5      SSS9 nUR                  5        HE  nUR	                  S5      (       d  M  U[
        R
                  " UR                  5       S   5      -  nMG     S S S 5        U HP  nT R                  T R                  U5      5      (       d  M*  T R                  U5      nUT R                  SU5      -  nMR     U HG  nUR	                  S	5      (       a  USS  nT R                  U5      (       d  M6  T R                  U5        MI     T R                  / S
Q5        T R                  S5        T R                  SSS9  [        U 4S jS 5       5      nU(       at  T R                  S5      (       a]  T R                  SS/SS9  T R                  SSS9  T R                  SSS9  T R                  S5      (       a  T R                  SS/5        g g g g ! , (       d  f       GNw= f)Nzetc/rsyslog.conf/etc/syslog.confrzUTF-8)encodingz$IncludeConfig   z^\S+\s+(-?\/.*$)\s+-)z/var/log/auth.log*z/var/log/boot.logz/var/log/dist-upgradez/var/log/installerz/var/log/kern.log*z/var/log/messages*z/var/log/secure*z/var/log/syslog*z/var/log/udevz/etc/rsyslog.confz/etc/rsyslog.dr   zjournalctl --disk-usagez/var/logT)	recursivec              3   f   >#    U  H&  nTR                  TR                  US 5      5      v   M(     g7f)zlog/journal/N)path_exists	path_join).0pselfs     9/usr/lib/python3/dist-packages/sos/report/plugins/logs.py	<genexpr>!LogsBase.setup.<locals>.<genexpr>A   s1      1/! &&t~~a'HII/s   .1)z/varz/runzsystemd-journaldjournal_fulljournal_alld   )tagsprioritythisjournal_since_boot)bootr"   lastjournal_last_bootall_logsz/var/log/journal/*z/run/log/journal/*)r   openr   	readlines
startswithglobsplitdo_regex_find_allpath_isfileadd_copy_specadd_cmd_outputadd_dir_listingany
is_serviceadd_journal
get_option)	r   rsyslogconfsr
   conflineconfigijournals	   `        r   setupLogsBase.setup   s   $#W-G$$dnnW-sWE NN,D'7884::<?!;; - F
 D##DNN4$899^^D)FD**+A6JJD	  A||C  abE""""1%	  	 
 	 	56Z48  1/1 1t'9::>="A&)  +&/CD&/BCz**""(($  + ;7S FEs   (H&.H
Hc                 *    U R                  SSS5        g )Nz/etc/rsyslog*z (ActionLibdbiPassword |pwd=)(.*)z\1[********])do_path_regex_sub)r   s    r   postprocLogsBase.postprocN   s    /	
     N)
__name__
__module____qualname____firstlineno__
short_descplugin_nameprofilesr?   rC   __static_attributes__rF   rE   r   r   r      s    JK0H8t
rE   r   c                        \ rS rSrSrSrSrSrg)IndependentLogsV   a  
This plugin will collect logs traditionally considered to be "system" logs,
meaning those such as /var/log/messages, rsyslog, and journals that are
not limited to unit-specific entries.

Note that the --since option will apply to journal collections by this
plugin as well as the typical application to log files. Most users can
expect typical journal collections to include the "full" journal, as well
as journals limited to this boot and the previous boot.
r
   r   rF   N)rG   rH   rI   rJ   __doc__rL   rM   rN   rF   rE   r   rP   rP   V   s    	 K0HrE   rP   c                   :   ^  \ rS rSr\" SSSS9/rU 4S jrSrU =r$ )CosLogsf   log-days   z"the number of days logs to collect)namedefaultdescc                    > [         TU ]  5         U R                  S5      (       a  U R                  S5        g U R                  SS5      nU R	                  SU S3S9  g )Nr)   zjournalctl -o exportrV   rW   r   days)since)superr?   r7   r2   r6   )r   r\   	__class__s     r   r?   CosLogs.setupl   sS    ??:&& 67??:q1DQtfD>2rE   rF   )	rG   rH   rI   rJ   r   option_listr?   rN   __classcell__)r_   s   @r   rT   rT   f   s#    z1;	=K
3 3rE   rT   )	r-   sos.report.pluginsr   r   r   r   r   rP   rT   rF   rE   r   <module>rd      s<     N NF
v F
R1h 1 1 3h	 3rE   