【Linux應用】Linux系統日志上報服務,以及thttpd的配置、發送函數

【Linux應用】Linux系統日志上報服務,以及thttpd的配置、發送函數

文章目錄

  • thttpd服務
  • 安裝thttpd
  • 配置thttpd服務
  • thttpd函數
  • 日志效果和文件
  • 附錄:開發板快速上手:鏡像燒錄、串口shell、外設掛載、WiFi配置、SSH連接、文件交互(RADXA ZERO 3為例)
    • ZERO 3燒錄
    • ZERO 3串口shell
    • 外設掛載
    • 連接WiFi
    • SSH連接
    • SSH的文件交互
    • 換源

thttpd服務

通過thttpd可以進行日志上報等服務
thttpd 是一個簡單,小型,可移植,快速且安全的 HTTP 服務器,thttpd搭建的Web服務器支持認證、CGI等服務,功能都比較齊全,常用于嵌入式或桌面系統搭建web服務器使用。
從官網即可下載
下載thttpd

安裝thttpd

安裝共分以下幾步

1. 解壓 進入目錄
2. ./configure
3. sudo make
4. sudo make install
5. 檢驗 sudo thttpd -V
6. 添加服務

對應步驟shell為:

tar -xzvf thttpd-2.29.tar.gz
cd thttpd-2.29/
./configure
sudo make
sudo make install
sudo thttpd -V
cd ..
sudo chmod 777 thttpd.conf
sudo chmod 777 thttpd-with-timezone.service
sudo cp thttpd.conf /etc/
sudo cp thttpd-with-timezone.service /etc/systemd/system
cd /etc/systemd/system/
sudo systemctl enable thttpd-with-timezone.service

配置thttpd服務

.conf文件配置內容如下:

# This section overrides defaults
dir=/usr/local/thttpd/www/log
chroot
#user=www# default = nobody
logfile=/var/log/thttpd.log
pidfile=/var/run/thttpd.pid
# This section _documents_ defaults in effect
port=80
# nosymlink# default = !chroot
# novhost
# nocgipat
# nothrottles
host=0.0.0.0
# charset=iso-8859-1

.service服務文件如下:

Description=thttpd Web Server with Timezone Setup
After=network.target local-fs.target[Service]
Type=forking
ExecStartPre=/usr/bin/timedatectl set-timezone Asia/Shanghai
ExecStart=/usr/local/sbin/thttpd -C /etc/thttpd.conf
User=root
Group=root
PIDFile=/var/run/thttpd.pid
Restart=on-failure[Install]
WantedBy=multi-user.target

thttpd函數

log.hlog.cpp
包含以下API:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
void init_log_file();
void write_log(const char* format, ...);
void log_debug(const char* format, ...);
void log_info(const char* format, ...);
void log_warn(const char* format, ...);
void log_error(const char* format, ...);

常用log_info即可 其與printf一樣
在這里插入圖片描述

日志效果和文件

最后的日志效果:
在這里插入圖片描述
保存在如下目錄下:
在這里插入圖片描述
目錄按日期進行存儲
在這里插入圖片描述

附錄:開發板快速上手:鏡像燒錄、串口shell、外設掛載、WiFi配置、SSH連接、文件交互(RADXA ZERO 3為例)

開發板快速上手:鏡像燒錄、串口shell、外設掛載、WiFi配置、SSH連接、文件交互(RADXA ZERO 3為例)

ZERO 3燒錄

ZERO 3有兩種 最本質的就是一個帶WiFi一個不帶WiFi
在這里插入圖片描述

ZERO 3作為一個Linux板 其存儲支持從sd卡EFI啟動

系統安裝則直接通過Balena Etcher來進行
可以使用其Windows版本即可
官方文檔:
官方文檔快速上手描述

鏡像下載則也可以使用官方鏡像:
Radxa ZERO 3 Debian Build 6

該鏡像是最初的鏡像 很多依賴都沒有
如果開發的話 可以直接下載第三方鏡像 或者自己在原有官方鏡像上去安裝鏡像包等等

燒錄很簡單 直接用工具選擇U盤 選擇鏡像即可

下圖為燒錄好了的sd卡
在這里插入圖片描述
除了系統分區外 就是一個config分區 其掛載根根目錄名稱即為config

在這里插入圖片描述

ZERO 3串口shell

串口與ZERO 3鏈接如下圖:
在這里插入圖片描述
鏈接后 配置串口為

baudrate: 1500000
data bit: 8
stop bit: 1
parity  : none
flow control: none

啟動后 用戶名和密碼都為radxa
在這里插入圖片描述

外設掛載

根據df命令查詢系統掛載點
在這里插入圖片描述
其做好了的U盤外部存儲空間為/config
在這里插入圖片描述

連接WiFi

使用如下指令鏈接WiFi:

nmcli device wifi                                           #掃描WiFi
sudo nmcli device wifi connect <ssid> password <passwd>     #連接WiFi

在這里插入圖片描述
連上后 使用ip a命令即可查看連接狀態和ip
在這里插入圖片描述

SSH連接

使用命令sudo systemctl status ssh查看ssh狀態在這里插入圖片描述
前提是要安裝ssh
如果沒有安裝 則通過shell安裝ssh:

sudo apt-get update
sudo apt-get install openssh-server openssh-sftp-server

根據Active判斷是否需要重啟ssh服務:
重啟ssh服務:

sudo systemctl restart ssh

啟動后如下:
在這里插入圖片描述
Active狀態就被設置為了running

開機自啟動ssh則使用命令:

sudo systemctl enable --now ssh

在PC上 支持ssh的設備中 使用以下指令鏈接到板子:

ssh [username]@[IP address] # or ssh [username]@[hostname]

如下圖:
在這里插入圖片描述

SSH的文件交互

若是在PC上作為主機去訪問設備
那么就是在PC的cmd中運行shell

有的終端軟件配備了ssh的文件管理傳輸功能
在這里插入圖片描述
連上以后就可以直接搜素到當前目錄下的各類文件 以便于實現文件管理
并且可以直接download
在這里插入圖片描述

# 復制 Windows 文件到 Linux
scp D:\data\1.txt root@192.168.88.161:/root/data
# 復制 Windows 目錄到 Linux(記得加 -r)
scp -r D:\data root@192.168.88.161:/root/data# 復制 Linux 文件到 Windows
scp root@192.168.88.161:/root/data/1.txt D:\data
# 復制 Linux 目錄到 Windows(記得加 -r)
scp -r root@192.168.88.161:/root/data D:\data

前提是設備開啟了ssh可以被鏈接
在這里插入圖片描述
發過去后便能在板子上看到:
在這里插入圖片描述

回傳文件夾:
在這里插入圖片描述
在這里插入圖片描述

如果是Linux設備去連接Windows設備 則需要在Windows里面設置對應的服務 相關教程很多 這里不過多贅述

如果是Linux設備訪問Linux設備 則主設備也要指定IP

scp root@192.168.88.161:/root/1.txt root@192.168.88.162:/root# 如果設置了Linux之間的免密登錄,可這樣寫:
scp 192.168.88.161:///root/1.txt 192.168.88.162:///root

換源

Linux系統的源都在/etc/apt/下 一般有兩個文件
一個是sources.list 另外一個是sources.list.d目錄下的品牌list文件

如樹莓派需要備份原本的源:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak

而radxa的則是:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 
sudo cp /etc/apt/sources.list.d/radxa.list /etc/apt/sources.list.d/radxa.list.bak

將原本的文件進行編輯:

sudo nano /etc/apt/sources.list

注釋掉最初的源 并添加新的源:

deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates main contrib non-free-firmware

如圖:
在這里插入圖片描述
然后再換子目錄下的源

sudo nano /etc/apt/sources.list.d/raspi.list

替換成:

deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main

不過很可惜 清華源沒有radxa 但是可以換debian的源(/etc/apt/sources.list):

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

換源后 執行

sudo apt-get upgrade
sudo apt-get update

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908724.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908724.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908724.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 內核內存管理子系統全面解析與體系構建

一、前言: 為什么內存管理是核心知識 內存管理是 Linux 內核最核心也最復雜的子系統之一&#xff0c;其作用包括&#xff1a; 為軟件提供獨立的虛擬內存空間&#xff0c;實現安全隔離分配/回收物理內存資源&#xff0c;維持系統穩定支持不同類型的內存分配器&#xff0c;最優…

鼠標的拖動效果

1、變量的設置 let isDragging false; let startX; let startY&#xff1b; let endX; let endY; let box null;isDragging : 表示是否推拽startX、startY&#xff1a;表示起始坐標&#xff0c;相對于元素endX、endY&#xff1a;表示結束坐標&#xff0c;相對于元素box&…

SwaggerFuzzer:一款自動化 OpenAPI/Swagger 接口未授權訪問測試工具

SwaggerFuzzer &#x1f310; 一款自動化 OpenAPI/Swagger 接口未授權訪問測試工具&#x1f680; 工具介紹&#xff1a;SwaggerFuzzer? 核心功能亮點&#x1f680; 快速使用&#x1f9f0; 支持參數 &#x1f4cc; 項目結構&#x1f4e5; 獲取與下載 &#x1f310; 一款自動化 …

文獻閱讀:Exploring Autoencoder-based Error-bounded Compression for Scientific Data

目錄 論文簡介動機&#xff1a;為什么作者想要解決這個問題&#xff1f;貢獻&#xff1a;作者在這篇論文中完成了什么工作(創新點)&#xff1f;規劃&#xff1a;他們如何完成工作&#xff1f;離線訓練階段&#xff1a;在線壓縮階段 理由&#xff1a;通過什么實驗驗證它們的工作…

【業務框架】3C-相機-Cinemachine

概述 插件&#xff0c;做相機需求&#xff0c;等于相機老師傅多年經驗總結的工具 Feature Transform&#xff1a;略Control Camera&#xff1a;控制相機參數Noise&#xff1a;增加隨機性Blend&#xff1a;CameraBrain的混合列表指定一個虛擬相機到另一個相機的過渡&#xff…

設計一個算法:刪除非空單鏈表L中結點值為x的第一個結點的前驅結點

目錄 單鏈表的存儲結構定義如下 快慢指針法 三指針法版本① 三指針法版本② 單鏈表的存儲結構定義如下 typedef struct{Elemtype data;struct Node* next; }LNode,*LinkList; 快慢指針法 void deleteprex(LinkList L, Elemtype e) {if (L NULL || L->next NULL ||…

【Qt】:設置新建類模板

完整的頭文件模板 #ifndef %FILENAME%_H #define %FILENAME%_H/*** brief The %CLASSNAME% class* author %USER%* date %DATE%*/ class %CLASSNAME% { public:%CLASSNAME%();~%CLASSNAME%();// 禁止拷貝構造和賦值%CLASSNAME%(const %CLASSNAME%&) delete;%CLASSNAME%&a…

?**?CID字體?**? 和 ?**?Simple字體?**?

在PDF中&#xff0c;字體類型主要分為 ??CID字體?? 和 ??Simple字體?? 兩大類&#xff0c;它們的主要區別在于編碼方式和適用場景。以下是它們的詳細對比&#xff1a; ??1. CID字體&#xff08;CID-keyed Fonts&#xff09;?? CID&#xff08;Character Identifie…

計組_導學

2025.05.31:老湯講408計組學習筆記 導學 第1章計算機系統概述:對計算機系統有全局的認識第2章總線系統:簡單且獨立,不會依賴其他內容,它是被依賴的第3章主存儲器:只有了解主存儲器的內部結構,才能理解在主存中是如何存儲二進制的第4章數據的表示與運算:各種編碼以及計算…

【GPT模型訓練】第二課:張量與秩:從數學本質到深度學習的基礎概念解析

這里寫自定義目錄標題 張量&#xff08;Tensor&#xff09;的定義關鍵特點&#xff1a;示例&#xff1a; 張量的秩&#xff08;Rank&#xff09;示例&#xff1a;“秩”的拼音常見混淆點 總結 張量&#xff08;Tensor&#xff09;的定義 在數學和物理學中&#xff0c;張量是一…

RabbitMQ work模型

Work 模型是 RabbitMQ 最基礎的消息處理模式&#xff0c;核心思想是 ??多個消費者競爭消費同一個隊列中的消息??&#xff0c;適用于任務分發和負載均衡場景。同一個消息只會被一個消費者處理。 當一個消息隊列綁定了多個消費者&#xff0c;每個消息消費的個數都是平攤的&a…

【Linux操作系統】基礎開發工具(yum、vim、gcc/g++)

文章目錄 Linux軟件包管理器 - yumLinux下的三種安裝方式什么是軟件包認識Yum與RPMyum常用指令更新軟件安裝與卸載查找與搜索清理緩存與重建元數據 yum源更新1. 備份現有的 yum 源配置2. 下載新的 repo 文件3. 清理并重建緩存 Linux編輯器 - vim啟動vimVim 的三種主要模式常用操…

73常用控件_QFormLayout的使用

目錄 代碼?例: 使? QFormLayout 創建表單. 除了上述的布局管理器之外, Qt 還提供了 QFormLayout , 屬于是 QGridLayout 的特殊情況, 專 ??于實現兩列表單的布局. 這種表單布局多?于讓??填寫信息的場景. 左側列為提?, 右側列為輸?框 代碼?例: 使? QFormLayout 創…

蘭亭妙微 | 醫療軟件的界面設計能有多專業?

從醫療影像系統到手術機器人控制界面&#xff0c;從便攜式病原體檢測設備到多平臺協同操作系統&#xff0c;蘭亭妙微為眾多醫療設備研發企業&#xff0c;打造了兼具專業性與可用性的交互界面方案。 我們不僅做設計&#xff0c;更深入理解醫療場景的實際需求&#xff1a; 對精…

鴻蒙開發修改版本幾個步驟

鴻蒙開發修改版本幾個步驟 比如&#xff1a;5.0.4&#xff08;16&#xff09;版本改為5.0.2&#xff08;14&#xff09;版本 一、項目下的build-profile.json5 "products": [{"name": "default","signingConfig": "default&qu…

Flask 基礎與實戰概述

一、Flask 基礎知識 什么是 Flask? Flask 是一個基于 Python 的輕量級 Web 框架(微框架)。 特點:核心代碼簡潔,給予開發者更多選擇空間。 與 Django 對比: Django 創建空項目生成多個文件,Flask 僅需一個文件即可實現簡單應用(如 "Hello, World!")。 Flask …

Linux安全加固:從攻防視角構建系統免疫

Linux安全加固:從攻防視角構建系統免疫 構建堅不可摧的數字堡壘 引言:攻防對抗的新紀元 在日益復雜的網絡威脅環境中,Linux系統安全已從被動防御轉向主動免疫。2023年全球網絡安全報告顯示,高級持續性威脅(APT)攻擊同比增長65%,平均入侵停留時間縮短至48小時。本章將從…

Java嚴格模式withResolverStyle解析日期錯誤及解決方案

在Java中使用DateTimeFormatter并啟用嚴格模式&#xff08;ResolverStyle.STRICT&#xff09;時&#xff0c;解析日期字符串"2025-06-01"報錯的根本原因是&#xff1a;模式字符串中的年份格式yyyy被解釋為YearOfEra&#xff08;紀元年份&#xff09;&#xff0c;而非…

Java中的泛型底層是怎樣的

Java 泛型深入底層原理解析&#xff1a;類型擦除與橋方法的真相 一、Java中的偽泛型 Java 從 JDK 1.5 引入泛型之后&#xff0c;大大提升了代碼的類型安全性與可讀性。但泛型的底層實現并不像 C 的模板機制那樣是“真正的泛型”&#xff0c;Java 的泛型是偽泛型&#xff0c;在…