How to retrieve counts of IP addresses from log file?











up vote
2
down vote

favorite
1












I am checking a log file to retrieve ip adresses plus how many times a log failed. This is what my log file looks like:



Feb  2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173


Now, I want to also check for how many times the log was accepted. The idea is to get an overview over brute forcing attacks.



How do I extend



sed -nr '/Failed/{s/.*([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/1/;p}'| sort | uniq -c 


to also check for accepted passwords? Something like



sed -nr '/Accepted|Failed/{s/.*([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/1/;p}'| sort | uniq -c 


But instead of having an "or" between Accepted and Failed I would like to get a count result that would look like this:



123.53.163.22 3 2


(The columns are: IP address, total Failed, total Accepted)



This is related to How to retrieve IP addresses of possible ssh attackers?










share|improve this question









New contributor




Horbaje is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • From the command that you have, we can guess what your input might look like.   We don't like to guess.   Show a representative example of what your input looks like and what output you want to get.
    – G-Man
    Dec 3 at 16:40















up vote
2
down vote

favorite
1












I am checking a log file to retrieve ip adresses plus how many times a log failed. This is what my log file looks like:



Feb  2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173


Now, I want to also check for how many times the log was accepted. The idea is to get an overview over brute forcing attacks.



How do I extend



sed -nr '/Failed/{s/.*([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/1/;p}'| sort | uniq -c 


to also check for accepted passwords? Something like



sed -nr '/Accepted|Failed/{s/.*([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/1/;p}'| sort | uniq -c 


But instead of having an "or" between Accepted and Failed I would like to get a count result that would look like this:



123.53.163.22 3 2


(The columns are: IP address, total Failed, total Accepted)



This is related to How to retrieve IP addresses of possible ssh attackers?










share|improve this question









New contributor




Horbaje is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • From the command that you have, we can guess what your input might look like.   We don't like to guess.   Show a representative example of what your input looks like and what output you want to get.
    – G-Man
    Dec 3 at 16:40













up vote
2
down vote

favorite
1









up vote
2
down vote

favorite
1






1





I am checking a log file to retrieve ip adresses plus how many times a log failed. This is what my log file looks like:



Feb  2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173


Now, I want to also check for how many times the log was accepted. The idea is to get an overview over brute forcing attacks.



How do I extend



sed -nr '/Failed/{s/.*([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/1/;p}'| sort | uniq -c 


to also check for accepted passwords? Something like



sed -nr '/Accepted|Failed/{s/.*([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/1/;p}'| sort | uniq -c 


But instead of having an "or" between Accepted and Failed I would like to get a count result that would look like this:



123.53.163.22 3 2


(The columns are: IP address, total Failed, total Accepted)



This is related to How to retrieve IP addresses of possible ssh attackers?










share|improve this question









New contributor




Horbaje is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I am checking a log file to retrieve ip adresses plus how many times a log failed. This is what my log file looks like:



Feb  2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173


Now, I want to also check for how many times the log was accepted. The idea is to get an overview over brute forcing attacks.



How do I extend



sed -nr '/Failed/{s/.*([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/1/;p}'| sort | uniq -c 


to also check for accepted passwords? Something like



sed -nr '/Accepted|Failed/{s/.*([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/1/;p}'| sort | uniq -c 


But instead of having an "or" between Accepted and Failed I would like to get a count result that would look like this:



123.53.163.22 3 2


(The columns are: IP address, total Failed, total Accepted)



This is related to How to retrieve IP addresses of possible ssh attackers?







shell-script shell sed logs ip






share|improve this question









New contributor




Horbaje is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Horbaje is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited yesterday









JigglyNaga

3,569829




3,569829






New contributor




Horbaje is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Dec 3 at 9:54









Horbaje

163




163




New contributor




Horbaje is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Horbaje is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Horbaje is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • From the command that you have, we can guess what your input might look like.   We don't like to guess.   Show a representative example of what your input looks like and what output you want to get.
    – G-Man
    Dec 3 at 16:40


















  • From the command that you have, we can guess what your input might look like.   We don't like to guess.   Show a representative example of what your input looks like and what output you want to get.
    – G-Man
    Dec 3 at 16:40
















From the command that you have, we can guess what your input might look like.   We don't like to guess.   Show a representative example of what your input looks like and what output you want to get.
– G-Man
Dec 3 at 16:40




From the command that you have, we can guess what your input might look like.   We don't like to guess.   Show a representative example of what your input looks like and what output you want to get.
– G-Man
Dec 3 at 16:40










1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










Given the scant sample ....



cat horbaje
Feb 2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173


This, I think, does what you want:



awk '$6~/Failed/{a[$11][1]++}; $6~/Accepted/{a[$11][2]++} END{for(i in a){printf "%st%st%sn",i,a[i][1],a[i][2]}}' horbaje
143.100.67.173 5 1





share|improve this answer



















  • 1




    Thank you tink, that was very helpful in solving my problem!
    – Horbaje
    yesterday










  • Pleased to hear =}
    – tink
    yesterday











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',
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
});


}
});






Horbaje is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f485650%2fhow-to-retrieve-counts-of-ip-addresses-from-log-file%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
1
down vote



accepted










Given the scant sample ....



cat horbaje
Feb 2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173


This, I think, does what you want:



awk '$6~/Failed/{a[$11][1]++}; $6~/Accepted/{a[$11][2]++} END{for(i in a){printf "%st%st%sn",i,a[i][1],a[i][2]}}' horbaje
143.100.67.173 5 1





share|improve this answer



















  • 1




    Thank you tink, that was very helpful in solving my problem!
    – Horbaje
    yesterday










  • Pleased to hear =}
    – tink
    yesterday















up vote
1
down vote



accepted










Given the scant sample ....



cat horbaje
Feb 2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173


This, I think, does what you want:



awk '$6~/Failed/{a[$11][1]++}; $6~/Accepted/{a[$11][2]++} END{for(i in a){printf "%st%st%sn",i,a[i][1],a[i][2]}}' horbaje
143.100.67.173 5 1





share|improve this answer



















  • 1




    Thank you tink, that was very helpful in solving my problem!
    – Horbaje
    yesterday










  • Pleased to hear =}
    – tink
    yesterday













up vote
1
down vote



accepted







up vote
1
down vote



accepted






Given the scant sample ....



cat horbaje
Feb 2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173


This, I think, does what you want:



awk '$6~/Failed/{a[$11][1]++}; $6~/Accepted/{a[$11][2]++} END{for(i in a){printf "%st%st%sn",i,a[i][1],a[i][2]}}' horbaje
143.100.67.173 5 1





share|improve this answer














Given the scant sample ....



cat horbaje
Feb 2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173


This, I think, does what you want:



awk '$6~/Failed/{a[$11][1]++}; $6~/Accepted/{a[$11][2]++} END{for(i in a){printf "%st%st%sn",i,a[i][1],a[i][2]}}' horbaje
143.100.67.173 5 1






share|improve this answer














share|improve this answer



share|improve this answer








edited yesterday

























answered yesterday









tink

4,00611218




4,00611218








  • 1




    Thank you tink, that was very helpful in solving my problem!
    – Horbaje
    yesterday










  • Pleased to hear =}
    – tink
    yesterday














  • 1




    Thank you tink, that was very helpful in solving my problem!
    – Horbaje
    yesterday










  • Pleased to hear =}
    – tink
    yesterday








1




1




Thank you tink, that was very helpful in solving my problem!
– Horbaje
yesterday




Thank you tink, that was very helpful in solving my problem!
– Horbaje
yesterday












Pleased to hear =}
– tink
yesterday




Pleased to hear =}
– tink
yesterday










Horbaje is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















Horbaje is a new contributor. Be nice, and check out our Code of Conduct.













Horbaje is a new contributor. Be nice, and check out our Code of Conduct.












Horbaje is a new contributor. Be nice, and check out our Code of Conduct.
















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.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • 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%2f485650%2fhow-to-retrieve-counts-of-ip-addresses-from-log-file%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

サソリ

広島県道265号伴広島線

Accessing regular linux commands in Huawei's Dopra Linux