如何优雅地退出程序

在Linux系统中执行操作时,进程可以通过发送和接收信号与其他进程进行通信。信号是用于通知进程发生特定事件或请求进程采取特定动作的软件中断。 以下是Linux系统中常见的一些信号及其含义: 1. **SIGINT (2)**:中断信号,通常由终端用户按下`Ctrl + C`发送给前台进程。该信号用于

Hello,博客园!

大家好我是咸鱼Linux运维,这是我创建博客园博客第一天 没来博客园之前,我通常都是在 CSDN、知乎、微信公众号上分享我的文章 我是一名00后程序员,专注于 Linux 系统运维、开源软件运维、自动化运维等领域 文章博客主要偏向于学习笔记及经历分享,希望大家多多支持,一起进步 :)

运维排查篇 | Linux 连接跟踪表满了怎么处理

nf_conntrack (在老版本的 Linux 内核中叫 ip_conntrack )是一个内核模块,用于跟踪一个网络连接的状态 一旦内核 netfilter 模块 conntrack 相关参数配置不合理,导致 nf_conntrack table full ,就会出现丢包、连接无法建立的问题

99%运维人员都忽略的服务器安全问题

公众号:咸鱼爱搞机 服务器安全是 IT 行业一个老生常谈的问题了,每年的护网行动,企业内部的安全培训都在提醒每个程序员处理好服务器安全问题已变得刻不容缓 如果在安全方面有疏忽,极易造成数据泄露、隐私泄露等重大安全事故 2022年美医疗中心数据泄露,超130万人受影响; 去年一月,勒索软件攻击引发墨西

Python 网络编程

自计算机诞生以来,计算机网络逐渐从单机模型发展成了网络互联模型 最初只是远程终端连接,终端(键盘和显示器)分布在各地然后与主机相连,用户通过终端来与远程主机进行交互,终端只能与主机通信 再到多个主机之间互联,几台固定的计算机相连在一起形成计算机网络,这种网络一般是私有的(局域网) 随着时代的发展,人

跟女朋友介绍十个常用的 Python 内置函数,她夸了我一整天

内置函数是什么 了解内置函数之前,先来了解一下什么是函数 将使用频繁的代码段进行封装,并给它起一个名字,当我们使用的时候只需要知道名字就行 函数就是一段封装好的、可以重复使用的代码,函数使得我们的程序更加简洁、模块化,提高了代码的复用性 举个例子 我想实现一个求球表面积功能的程序,当我们知道半径 r

干货!超实用的 Linux 初始化脚本

咸鱼今天给大家分享一个无论是学习还是工作中都很实用的 Linux 系统初始化脚本,其实就是各种命令的集合 完整代码在文章最后哦 定义相关变量 配置 yum 镜像源 获取阿里云 yum 镜像源 判断函数是否执行成功 写入一行配置 修改配置 配置系统时区 配置 dns 服务器 修改最大文件描述符限制 关

一次惨痛教训让我写了个Windows定期备份文件脚本

前言 说实话在写这篇文章的时候,咸鱼不禁又想起了那件男默女泪的往事 我喜欢做笔记,我觉得好记性不如烂笔头,所以在我的学生以及职业生涯阶段,我用过四款笔记应用——Onenote、语雀、印象笔记、Typora 其中我个人觉得体验最好的非 Typora 莫属了 ​ 在 2022 年的时候,由于 Typor

分享几个常用的运维 shell 脚本

今天咸鱼给大家分享几个不错的 Linux 运维脚本,这些脚本中大量使用了 Linux 的文本三剑客: 1. awk 2. grep 3. sed 建议大家这三个工具都要了解并最好能够较为熟练的使用 根据 PID 显示进程所有信息 根据用户输入的 PID,过滤出该 PID 所有的信息 #! /bin/

同步时间,为什么我选 Chrony 而不是 NTP ?

初识 chrony chrony 是网络时间协议(Network Time Protocol )的通用实现 它不但可以提供保持系统时间与 NTP 时钟服务器同步的服务,还能作为 NTP 服务器对其他服务器提供时间同步服务 chrony 特点: 任何情况下都能稳定良好运行(例如不稳定的网络中、不稳定的

《consul 简易上手指南》

consul 是一个用来做服务发现的框架,具有分布式、高可用以及可横向扩展的特性 什么是服务发现?为什么要实现服务发现? 举个常见的例子: 假设有一台 client 想要实现不同的业务,就需要调用接口去访问后端的server 那这样 client 就需要知道后端 server 的网络配置,通常是将

为什么文件删除了但磁盘空间没有释放?

案例现象 这天,监控系统发来一条告警消息,内容说某台服务器根目录磁盘占用空间达到阈值,超过百分之八十了 登上服务器,df -Th 看一下,发现磁盘空间确实不够用了 进入到根目录,然后 du -sh * 可以看到,var 目录下的磁盘空间已经占用了 75G 既然如此,删除 var 目录下一些占空间较大

《Flask Web 开发指南 pt.1》

最近在看辉哥的《Flask Web 开发实战》,这才有了《Flask Web 开发指南》系列的文章,偏向学习笔记多一点,也有实战的内容 看下这个系列的文章我能写多少篇 :) 愚人节玩笑 愚人节大家都喜欢开玩笑来整蛊别人以便达到娱乐效果,但对于开发者来说,就有可能出现让人意想不到的情况 2010 年

Python 中 is 和 == 的区别

is 和 == 的区别 相信学过 Python 小伙伴们都知道 is 和 == 都是用来比较 Python 对象的,但是区别就是 is 比较需要对象的值和内存地址都相等 == 比较只需要对象的值相等就行了 我们来看一个例子 我们可以看到,time 模块的 time() 方法用于获取当前时间,所以 t

Cursor,程序员的 AI 代码编辑助手

相信大家都或多或少地听说过、了解过 chatGPT ,半个月前发布的 GPT-4 ,可谓是 AI 赛道上的一个王炸 那么今天咸鱼给大家分享一个开源的 AI 代码编辑器——Cursor,让各位程序员在编程之路上一骑绝尘 :) PS:为了完整截图,本篇文章中的图片里文字有点小,请见谅 介绍 Cursor

shell 脚本之一键部署安装 Nginx

今天咸鱼给大家分享个源码编译安装 Nginx 的 shell 脚本 这个 shell 脚本可重复执行 完整源码放在最后 定义一个变量来存放 nginx 版本号 version=1.15.4 nginx 下载地址:http://nginx.org/download/ 下列函数功能则是判断当前步骤是否执

dmesg 时间误差现象

案例现象 这天收到监控平台发来的告警,说有台机器程序崩溃了 因为以前也有过相关的错误,根据经验,用 dmesg命令看下内核信息 发现有点不对劲,报错信息的时间跟告警时间不一致,正常来讲报错时间应该跟告警时间一致 使用 date 命令查看一下当前系统时间 然后我们查看一下系统日志 由上面的输出可以看到

kill 进程时遇到的一件有意思的事情

案例现象 一般来讲,我们在 kill 掉一个进程的时候通常有两个选择: 找到进程的 pid 号,然后执行 kill 命令 找到进程的名字,然后执行 pkill 命令 pkill 和 kill 命令都是向指定的进程发送信号,从而完成终结进程的操作,主要区别在于 pkill 命令与 pgrep 配套使用

《Flask Web 开发指南 pt.2》

哈喽大家好,我是咸鱼 在《Flask Web 开发指南 pt.1》中,咸鱼跟大家介绍了 Flask 的由来——诞生于一个愚人节玩笑,简单介绍了一些关于 Flask 的概念,并且编写了一个简单的 Flask 程序 在编写 Flask 程序的时候,你需要注意你的程序文件不要命名为 flask.py,建议

systemctl 命令设置开机自启动失败

哈喽大家好,我是咸鱼。今天跟大家分享一个关于 Linux 服务(service)相关的案例 案例现象 我在 3 月 31日的时候发表了一篇《shell 脚本之一键部署安装 Nginx》,介绍了如何通过 shell 脚本一键安装 Nginx 我脚本中执行了 Nginx 开机自启动的命令,当我使用 sy