Linux:使用systemd管理进程
参考:Systemd服务管理教程 Systemd 入门教程:实战篇 Systemd 入门教程:命令篇
概述systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。所以从CentOS 7 开始也由systemd取代了init作为默认的系统进程管理工具。
systemd所管理的所有系统资源都称作Unit,通过systemd命令集可以方便的对这些Unit进行管理。比如systemctl、hostnamectl、timedatectl、localctl等命令,这些命令虽然改写了init时代用户的命令使用习惯(不再使用chkconfig、service等命令),但确实也提供了很大的便捷性。
特点
提供了服务按需启动 的能力,使得特定的服务只有在真定被请求时才启动,显著提高开机启动效率
允许更多的进程并行启动: Systemd 通过 Socket 缓存、DBus 缓存和建立临时挂载点等方法进一步解决了启动进程之间的依赖,做到了所有系统服务并发启动。
...
Nginx常见的错误配置
翻译自Common Nginx misconfigurations that leave your web server open to attack
Nginx是当前主流的Web服务。 以下是一些最常见的错误配置。
Missing root location12345678server { root /etc/nginx; location /hello.txt { try_files $uri $uri/ =404; proxy_pass http://127.0.0.1:8080/; }}
root指令指定了Nginx的根目录。 在上面的示例中,根目录是*/etc/nginx,这意味着我们可以访问该目录下的文件。 上面的配置没有/的 location(location / {...}),只有/hello.txt的 location。 因此,将对root指令进行全局设置,这意味着对/ ...
Shell学习:命令
命令优先级:别名(alias)、保留关键字、函数(funciton)、内置命令、外部命令。
别名alisa 用来给命令创建一个别名。
CentOS 7默认创建的alias:
1234567891011[root@test ~]# aliasalias cp='cp -i'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bin/which --tty-only --read-al ...
Linux性能优化:CPU性能分析工具--vmstat
vmstat是Virtual Meomory Statistics(虚拟内存统计)缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
语法格式:
1vmstat [options] [delay [count]]
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
参数说明
参数
说明
-a
显示活跃和非活跃内存
-f
显示从系统启动至今的fork数量
-m
显示slabinfo
-n
只在开始时显示一次各字段名称
-s
显示内存相关统计信息及多种系统活动数量
-d
显示磁盘相关统计信息
-p
显示指定磁盘分区统计信息
-S
使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V
显示vmstat版本信息
输出信息说明类别:
procs:进程
memory:内存
s ...
Linux性能优化:性能追踪方法
记录在调查性能问题时,你可以做的最重要的事情大概就是记录下看到的每一个输出、执行的每一条命令,以及研究的每一个信息。结构清晰的记录能让你只查看记录就可以检验关于性能问题原因的猜想,而不是重新运行测试。这能节约大量时间。写下来并且创建性能记录。
每一步操作、每个输出结果,可以直接截图或者复制保存在文档,便于后期对比分析。
以脚本代替手动输入使用脚本自动执行,可以节省时间,并有助于避免因不当工具和测试调用造成的误导性信息。
举个例子,你想在特定工作负载下或某段时间内监控系统,但是在测试结束时,你可能不在现场。这种情况下,脚本就很好用了,在测试完成时,可以自动收集、命名、保存全部生成的性能数据,并将它们自动放到“Results”目录中。有了这些基础之后,你就能按照不同的优化和调整重新运行测试,并且不用担心数据是否已经保存好。你反而可以集中精力找出问题的原因,而不是去管理测试结果。
选择低开销的工具使用工具观察性能变化的同时,也会占用系统的资源,所以尽量选择低开销的工具来降低对系统的影响。
有些性能工具能够给出高度精确的系统信息,但其检索信息的开销也很高。高开销工具对系统行为带来的变化大于低开 ...
搭建本地yum镜像源
概述由于内网有大量机器不能访问公网,安装软件比较费劲,那么,如何让这些机器也能yum快速安装最新的软件呢?搭建一个本地镜像源能解决这样的问题,而如何让本地镜像源仓库的软件保持最新,就需要一个神器–reposync。
reposync用于将远端镜像源同步到本地。
语法说明1/usr/bin/reposync [options]
参数说明
参数
说明
-c
要使用的配置文件(默认为/etc/yum.conf)
-d
删除存储库中不再存在的本地包
-r REPOID, –repoid=REPOID
指定repo id来查询,可以指定多个次(默认全部启用)
-p DESTDIR, –download_path=DESTDIR
下载包的路径:默认为当前目录
-g
删除未通过GPG签名检查的软件包
-u
只列出要下载的URL,不要下载
-n
仅下载per-repo的最新软件包
-l
启用yum插件支持
部署
系统:CentOS Linux release 7.9.2009 (Core)
主机IP:192.168.7 ...
Shell学习:命令提示符
概述用户进入 Bash 以后,Bash 会显示一个命令提示符,用来提示用户在该位置后面输入命令。
环境变量 PS1命令提示符通常是美元符号$,对于根用户则是井号#。这个符号是环境变量PS1决定的,执行下面的命令,可以看到当前命令提示符的定义。
1$ echo $PS1
Bash 允许用户自定义命令提示符,只要改写这个变量即可。改写后的PS1,可以放在用户的 Bash 配置文件.bashrc里面,以后新建 Bash 对话时,新的提示符就会生效。要在当前窗口看到修改后的提示符,可以执行下面的命令。
1$ source ~/.bashrc
命令提示符的定义,可以包含特殊的转义字符,表示特定内容。
\a:响铃,计算机发出一记声音。
\d:以星期、月、日格式表示当前日期,例如“Mon May 26”。
\h:本机的主机名。
\H:完整的主机名。
\j:运行在当前 Shell 会话的工作数。
\l:当前终端设备名。
\n:一个换行符。
\r:一个回车符。
\s:Shell 的名称。
\t:24小时制的hours:minutes:seconds格式表示当前时间。
\T:12小时制的当前时间。
...
CentOS 7部署samba服务
参考:https://wiki.samba.org/index.php/User_Documentation
由于家里内网需要一个共享存储服务,用来存放一些蓝光电影资源😜。至于为什么不用ftp,个人主观体验后,还是觉得samba更简单好用。
安装新建一个虚拟机。
系统:CentOS Linux release 7.9.2009 (Core)
配置:2C4G2T
存储路径:/data/samba
1234systemctl stop firewalldsystemctl disable firewalldsetenforce 0yum install samba -y
创建共享目录和用户:
123mkdir -p /data/sambauseradd -s /sbin/nologin -M test01smbpasswd -a test01
配置配置文件说明配置分为两部分:
global(全局)
share(共享)
global网络相关配置(Network-Related Options)
参数
说明
workgroup
the Win ...
CenOS下载离线依赖包神器--yumdownloader
本文只总结一些常用的用法,更详细的说明见man yumdownloader和 info yumdownloader。
概述有时候所在服务器环境不能访问外网,yum安装会感到非常捉急,因为离线rpm安装的话,有很多依赖需要下载安装。因此,需要一个神器来解决问题,没错,就是它——yumdownloader 。
需要注意的是,CentOS 8中,使用了基于DNF技术(YUM v4)的 YUM 工具,dnf命令代替了原先的yum,yum命令只是软链接到dnf,yumdownloader实质是dnf download命令。
安装yumdownloader 命令在软件包 yum-utils 里面。通常系统已安装该命令,若系统未安装,则可以通过以下命令安装:
1yum install yum-utils -y
语法格式1yumdownloader [options] package1 [package2] [package..]
常用参数说明
参数
说明
-q
静默执行
-v
显示执行细节
-y
所有的选择都答yes
–downloadonly
不更新,只下载
...
Linux服务器web管理神器--Cockpit
还在为管理Linux服务器苦苦挣扎?推荐一款适合小白、新手、个人开发者的Linux管理神器,只需要在Web界面点点点就可以操作大部分功能了,而且非常轻量!
概述
官网:https://cockpit-project.org/
Cockpit是红帽开发的网页版图像化服务管理工具,优点是无需中间层,且可以管理多种服务。,系统管理员可以执行诸如存储管理、网络配置、检查日志、管理容器等任务。
根据其项目主站描述,Cockpit 有如下特点:
从易用性考虑设计,方便管理人员使用,而不是仅仅的终端命令按钮化。
不会打乱已有终端或脚本服务配置,通过 Cockpit 启用的服务可以在终端停止,脚本运行的错误亦会被 Cockpit 捕获。
支持一次性管理多个服务,实现自动化和批处理。
支持Debian, Redhat, CentOS, Fedora, Atomic, Arch Linux, and Ubuntu.
安装一般系统自带有,直接启动即可:
1systemctl enable --now cockpit.socket
若系统中没有安装,执行以下命令:
12345678910# CentO ...