How can I view journalctl logs by unit and identifier with one command?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












2















I have a vpn service unit for which I can view the logs with...



journalctl -u vpn


I also have a script that interacts with the vpn manually and is logged to journal with...



exec > >(systemd-cat -t vpn.sh) 2>&1


and I can view the logs with...



journalctl -t vpn.sh


I tried viewing both logs with...



journalctl -u vpn -t vpn.sh


but it didn't work.



Is there a way to view both logs at the same time? Or is it possible to set the identifier (-t vpn.sh) in the vpn service unit file to match the identifier of my script (vpn.sh).










share|improve this question


























    2















    I have a vpn service unit for which I can view the logs with...



    journalctl -u vpn


    I also have a script that interacts with the vpn manually and is logged to journal with...



    exec > >(systemd-cat -t vpn.sh) 2>&1


    and I can view the logs with...



    journalctl -t vpn.sh


    I tried viewing both logs with...



    journalctl -u vpn -t vpn.sh


    but it didn't work.



    Is there a way to view both logs at the same time? Or is it possible to set the identifier (-t vpn.sh) in the vpn service unit file to match the identifier of my script (vpn.sh).










    share|improve this question
























      2












      2








      2








      I have a vpn service unit for which I can view the logs with...



      journalctl -u vpn


      I also have a script that interacts with the vpn manually and is logged to journal with...



      exec > >(systemd-cat -t vpn.sh) 2>&1


      and I can view the logs with...



      journalctl -t vpn.sh


      I tried viewing both logs with...



      journalctl -u vpn -t vpn.sh


      but it didn't work.



      Is there a way to view both logs at the same time? Or is it possible to set the identifier (-t vpn.sh) in the vpn service unit file to match the identifier of my script (vpn.sh).










      share|improve this question














      I have a vpn service unit for which I can view the logs with...



      journalctl -u vpn


      I also have a script that interacts with the vpn manually and is logged to journal with...



      exec > >(systemd-cat -t vpn.sh) 2>&1


      and I can view the logs with...



      journalctl -t vpn.sh


      I tried viewing both logs with...



      journalctl -u vpn -t vpn.sh


      but it didn't work.



      Is there a way to view both logs at the same time? Or is it possible to set the identifier (-t vpn.sh) in the vpn service unit file to match the identifier of my script (vpn.sh).







      systemd systemd-journald systemd-unit






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Feb 7 at 2:26









      deanresindeanresin

      11811




      11811




















          2 Answers
          2






          active

          oldest

          votes


















          4














          TL;DR: This will work:



          $ journalctl _SYSTEMD_UNIT=vpn.service + SYSLOG_IDENTIFIER=vpn.sh


          You can use + to connect two sets of connections and look for journal log lines that match either expression. (This is documented in the man page of journalctl.)



          In order to do that, you need to refer to them by their proper field names (the flags -u and -t are shortcuts for those.)



          You can look at systemd.journal-fields(5) for the documentation of the field names. (That page will also explain why one of them has a leading underscore and the other one doesn't.)



          For _SYSTEMD_UNIT you will need an exact match, including the .service suffix (the -u shortcut is smart and will find the exact unit name when translating it to a query by field.)



          Putting it all together, you'll get the command above.






          share|improve this answer
































            0














            I found an alternate solution I wanted to post. Some people my find it useful. I can set the SyslogIdentifier under [Service] in the Unit file so that it matches the identifier in my script.



            So



            [Unit]
            Description=vpn management service

            [Service]
            SyslogIdentifier=vpn.sh
            Type=simple
            ExecStart=/bin/bash /home/myusername/scripts/vpn.sh


            So the identifier will now match that set in vpn.sh when I call the script manually. At the top of the script it is set with..



            exec > >(systemd-cat -t vpn.sh) 2>&1


            Now to see the logs from both systemd call to vpn.sh and manual call to vpn.sh..



            journalctl -t vpn.sh --since today


            or



            journalctl SYSLOG_IDENTIFIER=vpn.sh --since today





            share|improve this answer






















              Your Answer








              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "106"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );













              draft saved

              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f499203%2fhow-can-i-view-journalctl-logs-by-unit-and-identifier-with-one-command%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              4














              TL;DR: This will work:



              $ journalctl _SYSTEMD_UNIT=vpn.service + SYSLOG_IDENTIFIER=vpn.sh


              You can use + to connect two sets of connections and look for journal log lines that match either expression. (This is documented in the man page of journalctl.)



              In order to do that, you need to refer to them by their proper field names (the flags -u and -t are shortcuts for those.)



              You can look at systemd.journal-fields(5) for the documentation of the field names. (That page will also explain why one of them has a leading underscore and the other one doesn't.)



              For _SYSTEMD_UNIT you will need an exact match, including the .service suffix (the -u shortcut is smart and will find the exact unit name when translating it to a query by field.)



              Putting it all together, you'll get the command above.






              share|improve this answer





























                4














                TL;DR: This will work:



                $ journalctl _SYSTEMD_UNIT=vpn.service + SYSLOG_IDENTIFIER=vpn.sh


                You can use + to connect two sets of connections and look for journal log lines that match either expression. (This is documented in the man page of journalctl.)



                In order to do that, you need to refer to them by their proper field names (the flags -u and -t are shortcuts for those.)



                You can look at systemd.journal-fields(5) for the documentation of the field names. (That page will also explain why one of them has a leading underscore and the other one doesn't.)



                For _SYSTEMD_UNIT you will need an exact match, including the .service suffix (the -u shortcut is smart and will find the exact unit name when translating it to a query by field.)



                Putting it all together, you'll get the command above.






                share|improve this answer



























                  4












                  4








                  4







                  TL;DR: This will work:



                  $ journalctl _SYSTEMD_UNIT=vpn.service + SYSLOG_IDENTIFIER=vpn.sh


                  You can use + to connect two sets of connections and look for journal log lines that match either expression. (This is documented in the man page of journalctl.)



                  In order to do that, you need to refer to them by their proper field names (the flags -u and -t are shortcuts for those.)



                  You can look at systemd.journal-fields(5) for the documentation of the field names. (That page will also explain why one of them has a leading underscore and the other one doesn't.)



                  For _SYSTEMD_UNIT you will need an exact match, including the .service suffix (the -u shortcut is smart and will find the exact unit name when translating it to a query by field.)



                  Putting it all together, you'll get the command above.






                  share|improve this answer















                  TL;DR: This will work:



                  $ journalctl _SYSTEMD_UNIT=vpn.service + SYSLOG_IDENTIFIER=vpn.sh


                  You can use + to connect two sets of connections and look for journal log lines that match either expression. (This is documented in the man page of journalctl.)



                  In order to do that, you need to refer to them by their proper field names (the flags -u and -t are shortcuts for those.)



                  You can look at systemd.journal-fields(5) for the documentation of the field names. (That page will also explain why one of them has a leading underscore and the other one doesn't.)



                  For _SYSTEMD_UNIT you will need an exact match, including the .service suffix (the -u shortcut is smart and will find the exact unit name when translating it to a query by field.)



                  Putting it all together, you'll get the command above.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Feb 7 at 5:42

























                  answered Feb 7 at 4:18









                  filbrandenfilbranden

                  10k21645




                  10k21645























                      0














                      I found an alternate solution I wanted to post. Some people my find it useful. I can set the SyslogIdentifier under [Service] in the Unit file so that it matches the identifier in my script.



                      So



                      [Unit]
                      Description=vpn management service

                      [Service]
                      SyslogIdentifier=vpn.sh
                      Type=simple
                      ExecStart=/bin/bash /home/myusername/scripts/vpn.sh


                      So the identifier will now match that set in vpn.sh when I call the script manually. At the top of the script it is set with..



                      exec > >(systemd-cat -t vpn.sh) 2>&1


                      Now to see the logs from both systemd call to vpn.sh and manual call to vpn.sh..



                      journalctl -t vpn.sh --since today


                      or



                      journalctl SYSLOG_IDENTIFIER=vpn.sh --since today





                      share|improve this answer



























                        0














                        I found an alternate solution I wanted to post. Some people my find it useful. I can set the SyslogIdentifier under [Service] in the Unit file so that it matches the identifier in my script.



                        So



                        [Unit]
                        Description=vpn management service

                        [Service]
                        SyslogIdentifier=vpn.sh
                        Type=simple
                        ExecStart=/bin/bash /home/myusername/scripts/vpn.sh


                        So the identifier will now match that set in vpn.sh when I call the script manually. At the top of the script it is set with..



                        exec > >(systemd-cat -t vpn.sh) 2>&1


                        Now to see the logs from both systemd call to vpn.sh and manual call to vpn.sh..



                        journalctl -t vpn.sh --since today


                        or



                        journalctl SYSLOG_IDENTIFIER=vpn.sh --since today





                        share|improve this answer

























                          0












                          0








                          0







                          I found an alternate solution I wanted to post. Some people my find it useful. I can set the SyslogIdentifier under [Service] in the Unit file so that it matches the identifier in my script.



                          So



                          [Unit]
                          Description=vpn management service

                          [Service]
                          SyslogIdentifier=vpn.sh
                          Type=simple
                          ExecStart=/bin/bash /home/myusername/scripts/vpn.sh


                          So the identifier will now match that set in vpn.sh when I call the script manually. At the top of the script it is set with..



                          exec > >(systemd-cat -t vpn.sh) 2>&1


                          Now to see the logs from both systemd call to vpn.sh and manual call to vpn.sh..



                          journalctl -t vpn.sh --since today


                          or



                          journalctl SYSLOG_IDENTIFIER=vpn.sh --since today





                          share|improve this answer













                          I found an alternate solution I wanted to post. Some people my find it useful. I can set the SyslogIdentifier under [Service] in the Unit file so that it matches the identifier in my script.



                          So



                          [Unit]
                          Description=vpn management service

                          [Service]
                          SyslogIdentifier=vpn.sh
                          Type=simple
                          ExecStart=/bin/bash /home/myusername/scripts/vpn.sh


                          So the identifier will now match that set in vpn.sh when I call the script manually. At the top of the script it is set with..



                          exec > >(systemd-cat -t vpn.sh) 2>&1


                          Now to see the logs from both systemd call to vpn.sh and manual call to vpn.sh..



                          journalctl -t vpn.sh --since today


                          or



                          journalctl SYSLOG_IDENTIFIER=vpn.sh --since today






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Feb 8 at 6:38









                          deanresindeanresin

                          11811




                          11811



























                              draft saved

                              draft discarded
















































                              Thanks for contributing an answer to Unix & Linux Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid


                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.

                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f499203%2fhow-can-i-view-journalctl-logs-by-unit-and-identifier-with-one-command%23new-answer', 'question_page');

                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown






                              Popular posts from this blog

                              How to check contact read email or not when send email to Individual?

                              Displaying single band from multi-band raster using QGIS

                              How many registers does an x86_64 CPU actually have?