linux-系统日志查看指令systemctl_systemctl 查看日志
journalctl 是 systemd 日志管理工具,用于查询和显示由 systemd-journald 收集的系统日志.
systemctl
systemctl命令来自英文词组system control的缩写,是Linux系统中用于管理系统服务的工具。它提供了一系列命令,用于启动、停止、重启和查看服务状态等操作。
在 systemd 中,服务主要通过 .service 文件进行定义和管理.
目录区别:
/usr/lib/systemd/system/:这是软件包安装的默认目录(由发行版或 RPM/DEB 包管理),属于系统预置文件。/etc/systemd/system/:这是管理员自定义配置的目录,优先级更高。/run/systemd/system/:运行时临时配置(重启失效)自定义路径:可以通过 systemctl link /path/to/foo.service 添加
常用命令:
service文件定义好后,
sudo systemctl start [service_name] 启动服务
sudo systemctl enable [service_name] 设置开机自启动。
参考地址: Systemctl 详解:Linux 服务管理工具
journalctl
使用 systemctl 启动的服务默认会被 journalctl 记录,但直接命令行启动的应用不会。
systemd包含了一个叫做journalctl的辅助组件,其主要作用是管理系统的事件日志记录。
# journalctl -fjournalctl 跟踪日志文件 (读取最新条目)# journalctl -xe -x:表示显示扩展信息,包括日志消息的描述和建议(如果可用)。 -e:表示直接跳转到日志的末尾,方便查看最新的日志条目(类似于 tail -f 的效果)。# journalctl -n 数字我们可以通过-n 或者 --lines=参数来指定显示的行数大小。# journalctl -u nginx.service 按照服务进行筛选
参考地址: ournalctl命令详解,与如何查看系统日志
注意:
-
如果 Nginx 是直接通过二进制文件启动(而非 systemctl),不会留下记录. 即使通过systemctl 启动, 也未必留下记录(eg. nginx reload).
-
获取 Nginx 进程的reload执行情况
ps -eo pid,comm,lstart | grep nginx 这样可以. [root@abc redis]# ps -eo pid,comm,lstart | grep nginx 44700 nginx Tue Aug 5 10:35:44 2025 144219 nginx Tue Aug 5 16:55:49 2025 144220 nginx Tue Aug 5 16:55:49 2025
解释 -eo pid,comm,lstart
这是 ps 的选项和输出格式控制部分: -e:表示选择所有进程(every process)。等同于 --all。 -o:表示自定义输出格式(user-defined format)。后面跟的是要显示的列名。 pid,comm,lstart:指定要显示的字段,用逗号分隔: pid:进程 ID(Process ID),是操作系统用来唯一标识一个进程的数字。 comm:命令名(command name),即进程所执行的程序的名称(通常是可执行文件的 basename,如 nginx)。 lstart:进程的启动时间(full startup time),显示进程启动的完整日期和时间(包括年、月、日、时、分、秒、时区等)。
定时任务
如果需要添加定时任务,可以直接编辑 /etc/crontab 或使用 crontab -e(用户级任务)。
日志查看
查看 \"renew\"关键字周围内容
cat /var/log/letsencrypt/letsencrypt.log | grep -A 5 -B 5 \"renew\"-A 5:After,表示匹配行之后的 5 行也一并输出。-B 5:Before,表示匹配行之前的 5 行也一并输出。
查看端口占用
sudo netstat -tulnp | grep -E \':80|:443\'选项含义-t显示 TCP 协议的连接和监听端口(TCP)-u显示 UDP 协议的连接和监听端口(UDP)-l只显示 正在监听(listening)的套接字(即服务等待客户端连接的状态)-n以 数字形式 显示地址和端口号(不进行 DNS 反向解析,更快更清晰)-p显示 占用端口的进程 PID 和程序名称(需要 root 权限才能看到所有进程)
tee 是 Linux 和 Unix 系统中的一个非常有用的命令行工具,主要用于从标准输入读取数据,并将其同时输出到标准输出(屏幕)和一个或多个文件中。#1. 将命令输出同时显示在屏幕并保存到文件ls -la | tee output.txt
MySQL && 文件
用惯了UI工具, 如何通过命令行进行数据库备份和执行SQL文件?
mysql -u root -pUSE database_name;SOURCE /path/to/file.sql;
#mysql导出数据库
–extended-insert 表示长INSERT,多row在一起批量INSERT,提高导入效率
----complete-insert 表示拒绝默认列名, 必须指定每一个列名
mysqldump -u root -p --default-character-set=utf8mb4 --complete-insert --extended-insert=false aaa-cloud > aaa-cloud_bk.sql
mybatis 配置 sql打印
mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ```