�
i��d� � �j � d dl Z d dlmZmZmZmZ G d� de� Z G d� dee� Z G d� dee� Zy) � N)�Plugin� PluginOpt�IndependentPlugin� CosPluginc �$ � e Zd ZdZdZdZd� Zd� Zy)�LogsBasezSystem logs�logs��system�hardware�storagec � � ddg}g }| j d� }| j d� rut | j d� d� 5 }|j � D ]= }|j d� s�|t
j |j � d � z
}�? d d d � |D ]I }| j | j |� � s�$| j |� }|| j d|� z
}�K |D ]; }|j d� r|dd }| j |� s�+| j |� �= | j g d �� | j d
� | j d� t dD �cg c]# }| j | j |d
� � ��% c}� } | ru| j d� rd| j |ddgd�� | j d|d�� | j d|d�� | j d� r| j ddg� y y | j d� s| j g d�� y | j g d�� y # 1 sw Y ���xY wc c}w )N�/etc/syslog.conf�/etc/rsyslog.conf�since�rz$IncludeConfig� z^\S+\s+(-?\/.*$)\s+�-) r r z/etc/rsyslog.dz/var/log/boot.logz/var/log/installerz/var/log/messages*z/var/log/secure*z
/var/log/udevz/var/log/dist-upgradezjournalctl --disk-usagezls -alRh /var/log/)z/varz/runzlog/journal/zsystemd-journald�journal_full�journal_all�d )r �tags�priority�this�journal_since_boot)�bootr r �last�journal_last_boot�all_logsz/var/log/journal/*z/run/log/journal/*) z/var/log/syslogz/var/log/syslog.1z/var/log/syslog.2*z/var/log/kern.logz/var/log/kern.log.1z/var/log/kern.log.2*z/var/log/auth.logz/var/log/auth.log.1z/var/log/auth.log.2*)z/var/log/syslog*z/var/log/kern.log*z/var/log/auth.log*)�
get_option�path_exists�open� path_join� readlines�
startswith�glob�split�do_regex_find_all�path_isfile�
add_copy_spec�add_cmd_output�any�
is_service�add_journal)
�self�confsr r �conf�line�config�i�p�journals
�9/usr/lib/python3/dist-packages/sos/report/plugins/logs.py�setupzLogsBase.setup sf � �#�%8�9��������(�����/�0��d�n�n�%8�9�3�?�
<�4� �N�N�,� <�D����'7�8�����4�:�:�<��?�!;�;��<�
<�
� K�D��#�#�D�N�N�4�$8�9���^�^�D�)�F��D�*�*�+A�6�J�J�D� K� � &�A��|�|�C� ��a�b�E������"��"�"�1�%� &�
���
�
�
���5�6����0�1� � 0�2�� �'�'����q�.�(I�J� 2� 3���t���'9�:����5��
�/N�&)�
�
+����&��"6�
�
8����&��"5�
�
7����z�*��"�"�(�(�$� � +� �?�?�:�.��"�"�
$�
� �"�"� $� �A
<�
<��H2s �%I �*+I �*(I� Ic �* � | j ddd� y )Nz
/etc/rsyslog*z (ActionLibdbiPassword |pwd=)(.*)z\1[********])�do_path_regex_sub)r/ s r7 �postproczLogsBase.postproca s � �����/��
� N)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profilesr8 r; � r< |