一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用ChatGPT通過Shell腳本來實現(xiàn)日志分析

jf_TEuU2tls ? 來源:浩道linux ? 作者:浩道linux ? 2023-04-07 09:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ChatGPT自出道以來,其出色的代碼能力被眾多程序員追捧,今天浩道就運維工作中常見的日志分析場景,利用ChatGPT讓它通過Shell腳本來實現(xiàn)日志分析,并且附上人工寫的正確腳本。ChatGPT答案純原生未加以修改,未去驗證是否正確,大家可以利用這個機會去驗證其代碼能力,一起對比下吧!

1、通過shell分析網(wǎng)站日志,查看有多少個IP訪問?

人工答案:

awk '{print $1}' log_file|sort|uniq|wc -l

ChatGPT答案:

以下是一個簡單的分析網(wǎng)站訪問日志并統(tǒng)計IP數(shù)量的腳本:


#!/bin/bash


# 設置日志文件名和路徑
log_file="/var/log/nginx/access.log"


# 從訪問日志獲取所有的IP地址
ips=$(awk '{print $1}' "$log_file")


# 使用uniq命令統(tǒng)計不同的IP地址數(shù)量
ip_count=$(echo "$ips" | sort | uniq | wc -l)


# 輸出結(jié)果
echo "There are $ip_count unique IP addresses in the access log."




使用方法:


1. 將腳本保存到一個文件中,例如`count_ips.sh`
2. 使用`chmod +x count_ips.sh`命令添加可執(zhí)行權(quán)限
3. 在終端中運行`./count_ips.sh`來分析網(wǎng)站訪問日志并統(tǒng)計IP數(shù)量

2、通過shell分析,查看一個網(wǎng)站某一個頁面被訪問的次數(shù):

人工答案:

grep "/index.php" log_file | wc -l

ChatGPT答案:

#!/bin/bash


# 設置日志文件名和路徑
log_file="/var/log/nginx/access.log"


# 設置需要統(tǒng)計的頁面URL
page_url="/page.html"


# 使用grep命令從訪問日志中查找包含指定頁面URL的訪問記錄,并用wc命令統(tǒng)計行數(shù)(即訪問次數(shù))
page_count=$(grep "$page_url" "$log_file" | wc -l)


# 輸出結(jié)果
echo "The page $page_url has been accessed $page_count times."




使用方法:


1. 將腳本保存到一個文件中,例如`count_page.sh`
2. 使用`chmod +x count_page.sh`命令添加可執(zhí)行權(quán)限
3. 修改腳本中的`log_file`和`page_url`變量為對應的值
4. 在終端中運行`./count_page.sh`來分析網(wǎng)站訪問日志并統(tǒng)計某一個頁面被訪問次數(shù)

3、通過shell分析,查看每一個IP訪問了某個網(wǎng)站多少個頁面

人工答案:

awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file > log.txt


sort -n -t ' ' -k 2 log.txt  # 配合sort進一步排序

ChatGPT答案:

以下是一個簡單的分析網(wǎng)站訪問日志并統(tǒng)計每個IP訪問了某個網(wǎng)站多少個頁面的腳本:


#!/bin/bash


# 設置日志文件名和路徑
log_file="/var/log/nginx/access.log"


# 設置需要統(tǒng)計的網(wǎng)站主機名或IP地址
hostname="example.com"


# 使用grep命令從訪問日志中查找符合主機名或IP地址條件的訪問記錄,并使用awk命令提取IP地址和URL信息
ip_urls=$(grep "$hostname" "$log_file" | awk '{print $1,$7}')


# 使用awk命令對提取的IP地址和URL信息進行分組,并且統(tǒng)計每個IP對應的URL數(shù)量
ip_url_counts=$(echo "$ip_urls" | awk '{print $1" "$2}' | sort | uniq -c)


# 輸出結(jié)果
echo "IP address URL counts:"
echo "$ip_url_counts"




使用方法:


1. 將腳本保存到一個文件中,例如`count_ip_urls.sh`
2. 使用`chmod +x count_ip_urls.sh`命令添加可執(zhí)行權(quán)限
3. 修改腳本中的`log_file`和`hostname`變量為對應的值
4. 在終端中運行`./count_ip_urls.sh`來分析網(wǎng)站訪問日志并統(tǒng)計每個IP訪問了某個網(wǎng)站多少個頁面

4、通過shell分析,將每個IP訪問網(wǎng)站的頁面數(shù)進行從小到大排序

人工答案:

awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n

ChatGPT答案:

假設要分析的日志文件為access.log,可以使用以下命令進行分析和排序:


awk '{print $1,$7}' access.log | sort | uniq -c | sort -n




解釋一下該命令:


- `awk '{print $1,$7}' access.log`:使用awk命令,將每行日志中的IP地址和訪問頁面提取出來,以空格分隔。
- `sort`:對提取出來的IP地址和訪問頁面進行排序。
- `uniq -c`:對排序后的結(jié)果進行去重,同時統(tǒng)計每個IP訪問每個頁面的次數(shù)。
- `sort -n`:對統(tǒng)計后的結(jié)果進行排序,按照訪問次數(shù)從小到大排序。


運行以上命令,即可得到每個IP訪問網(wǎng)站的頁面數(shù)從小到大排序的結(jié)果。

5通過shell分析,查看2023年4月1日16時這一個小時內(nèi)有多少IP訪問網(wǎng)站

人工答案:

awk'{print$4,$1}'log_file|grep01/Apr/2023:14|awk'{print$2}'|sort|uniq|wc-l

ChatGPT答案:

假設要分析的日志文件為access.log,可以使用以下命令進行分析:


grep '01/Apr/2023' access.log | awk '{print $1}' | sort | uniq -c | wc -l




解釋一下該命令:


- `grep '01/Apr/2023' access.log`:使用grep命令,過濾出日志文件中時間為2023年4月1日14時的所有日志記錄。
- `awk '{print $1}'`:使用awk命令,提取出過濾結(jié)果中的IP地址。
- `sort`:對提取出來的IP地址進行排序。
- `uniq -c`:對排序后的結(jié)果進行去重,同時統(tǒng)計每個IP出現(xiàn)的次數(shù)。
- `wc -l`:統(tǒng)計去重后的結(jié)果數(shù)量,即為2023年4月1日14時這一個小時內(nèi)訪問網(wǎng)站的IP數(shù)目。


運行以上命令,即可得到2023年4月1日14時這一個小時內(nèi)訪問網(wǎng)站的IP數(shù)目。

結(jié)語:以上通過5道shell編程題目進行大PK,大家覺得怎么樣?個人覺得ChatGPT除了給出答案,還附上了詳細的解題思路,這不就是我們?nèi)斯懘a時所分析的步驟嗎?但是它不是人??!大家害怕了嗎?害怕是否會有哪一天會被AI取代?



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95261
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70756
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    372

    瀏覽量

    24221
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    398

    瀏覽量

    28462
  • ChatGPT
    +關(guān)注

    關(guān)注

    29

    文章

    1590

    瀏覽量

    9110

原文標題:ChatGPT代碼能力有多強?看看它寫的這些shell腳本

文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    shell腳本進階】幾個常用的shell進階腳本

    shell腳本進階】幾個常用的shell進階腳本
    的頭像 發(fā)表于 09-19 08:59 ?2331次閱讀
    【<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>進階】幾個常用的<b class='flag-5'>shell</b>進階<b class='flag-5'>腳本</b>

    shell是什么?shell實現(xiàn)原理分析基于MM32 MCU的shell腳本源碼

    在前兩節(jié)中,我們講解了如何在MM32 MCU上使用shell來輔助開發(fā),分別介紹的是通過串口方式和J-Link RTT方式的shell,本次課程我們分析源碼來講解
    發(fā)表于 12-02 15:58 ?2690次閱讀

    Linux中執(zhí)行shell腳本的兩種方式

    一條的執(zhí)行很是不大方便,這種太多命令的才能完成的,一般都是編寫一個shell腳本來進行操作,而不用一步一步的進行。有些時候在Linux中的很多對應的應用程序目錄下有很多.sh結(jié)尾的腳本,這些
    發(fā)表于 11-18 16:49 ?2062次閱讀
    Linux中執(zhí)行<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>的兩種方式

    Linux shell腳本分享

    今天浩道跟大家分享幾個Linux運維中常用到的shell腳本!
    發(fā)表于 07-18 09:53 ?679次閱讀
    Linux <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>分享

    如何做才能學好Shell腳本的經(jīng)驗總結(jié)

    大多同學反饋Shell腳本不容易學,感覺學完了Shell腳本這部分課程,還是不能寫出腳本來。 我來幫大家
    的頭像 發(fā)表于 01-09 18:23 ?6512次閱讀
    如何做才能學好<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>的經(jīng)驗總結(jié)

    如何利用Shell腳本掩藏Linux服務器使用痕跡

    使用 Shell 腳本在 Linux 服務器上能夠控制、毀壞或者獲取任何東西,通過一些巧妙的攻擊方法黑客可能會獲取巨大的價值,但大多數(shù)攻擊也留下蹤跡。當然,這些蹤跡也可通過
    的頭像 發(fā)表于 02-13 13:21 ?3555次閱讀

    嵌入式和物聯(lián)網(wǎng)的shell腳本學習指南之shell腳本入門免費下載

    本文檔的主要內(nèi)容詳細技術(shù)的是嵌入式和物聯(lián)網(wǎng)的shell腳本學習指南之shell腳本入門免費下載。
    發(fā)表于 09-11 17:15 ?20次下載
    嵌入式和物聯(lián)網(wǎng)的<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>學習指南之<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>入門免費下載

    shell腳本最簡明的教程

    Shell腳本,就是利用Shell的命令解釋的功能,對一個純文本的文件進行解析,然后執(zhí)行這些功能,也可以說Shell
    的頭像 發(fā)表于 10-16 11:27 ?5208次閱讀
    <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>最簡明的教程

    109個實用shell腳本分享

    Shell腳本,就是利用Shell的命令解釋的功能,對一個純文本的文件進行解析,然后執(zhí)行這些功能,也可以說Shell
    的頭像 發(fā)表于 03-16 08:58 ?2964次閱讀

    shell腳本基礎知識

    shell腳本是一個文件,里面存放的是特定格式的指令,系統(tǒng)可以使用腳本解析器翻譯或解析指令并執(zhí)行(無需編譯),shell腳本的本質(zhì)是
    的頭像 發(fā)表于 04-17 15:00 ?1375次閱讀

    Linux Shell腳本經(jīng)典案例分享

    ? 作為一名 Linux 運維工程師,會寫好的腳本不僅能提高工作效率,還能有更多的時間做自己的事。最近在網(wǎng)上沖浪的時候,發(fā)現(xiàn)大家對Shell腳本都有“心結(jié)”,要么覺得自己寫出來不好看,要么根本無從下手。 下面分享249個真實
    發(fā)表于 06-16 14:03 ?823次閱讀
    Linux <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>經(jīng)典案例分享

    如何利用shell進行腳本程序的設計?

    利用Shell進行腳本程序的設計可以按照以下步驟進行: 選擇Shell解釋器:在Unix和Linux系統(tǒng)中,通常會默認安裝一個或多個Shell
    的頭像 發(fā)表于 11-08 10:17 ?916次閱讀

    shell并行調(diào)用腳本

    Shell腳本中,可以使用一些技巧來實現(xiàn)并行調(diào)用。以下是幾種常見的方法: 使用后臺進程:在Shell腳本中,可以使用"command2 上
    的頭像 發(fā)表于 11-08 10:23 ?1284次閱讀

    Shell腳本檢查工具ShellCheck介紹

    ShellCheck是一個用于bash/sh shell腳本的靜態(tài)分析工具,可以輔助檢查腳本語法錯誤,給出建議增強腳本健壯性。
    的頭像 發(fā)表于 12-27 13:43 ?2766次閱讀
    <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>檢查工具ShellCheck介紹

    Linux從零到精通:最簡單的Shell腳本入門教程

    通過簡單的命令和腳本實現(xiàn)對系統(tǒng)的靈活控制和自動化管理。 shell腳本前言 shell
    的頭像 發(fā)表于 12-05 09:56 ?1573次閱讀
    Linux從零到精通:最簡單的<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>入門教程