MOC - music on console 无头音乐播放器
最近把一台老的笔记本电脑当作NAS使用,都是通过ssh管理。笔记本电脑自带声卡和喇叭,便想着说利用起来播放一些音乐。通过一番搜索,发现MOC这个软件正符合我的需求。
- 官网https://moc.daper.net/
- 命令 mocp 启动TUI
- h 显示帮助信息
- a 添加当前目录到播放列表
- n 下一曲
- b 上一曲
- X 自动播放下一曲
- S 随机播放
- p 或空格 暂停
- q 退出
最近把一台老的笔记本电脑当作NAS使用,都是通过ssh管理。笔记本电脑自带声卡和喇叭,便想着说利用起来播放一些音乐。通过一番搜索,发现MOC这个软件正符合我的需求。
在 Active Directory 环境中,所有成员计算机和域控制器默认使用层级时间同步架构:
因此,只需在森林根域的 PDC Emulator 上配置外部 NTP 源,时间就能自动向下层传播。
出于安全考虑,修改 SSH 默认端口(22)是一个常见的安全加固措施。本文介绍如何修改 SSH 监听端口,并正确配置 SELinux 以允许新端口的访问。
sudo vi /etc/ssh/sshd_config
找到 #Port 22 这一行,取消注释并修改为需要的端口:
Port 22
Port 2222
建议同时保留默认端口和自定义端口,便于测试。确认新端口正常工作后,再删除默认端口配置。
sudo systemctl restart sshd
# 检查 SSH 服务监听端口
sudo ss -tlnp | grep sshd
# 或使用 netstat
sudo netstat -tlnp | grep sshd
应该看到新端口(如 2222)已开始监听。
IPv4 地址空间中,有一部分地址段被 IANA 预留用于特殊用途,不能在互联网上直接路由。了解这些地址段,在网络规划和故障排查时都会用到。
下面按用途分类列出,排除多播(D 类,224.0.0.0/4)和预留(E 类,240.0.0.0/4)地址。
这三个段是私有网络中最常见的:
10.0.0.0/8 — 16,777,214 个地址172.16.0.0/12 — 1,048,574 个地址192.168.0.0/16 — 65,534 个地址这些地址在互联网上不会被路由。如果在公网看到这些源地址的包,直接丢弃。
127.0.0.0/8 — 全部指向本机。发往这个段的包由内核自己处理,不会离开主机。
unattended-upgrades 是 Debian 和 Ubuntu 系统上用于自动安装安全更新的工具。对于没有专人日常维护的服务器,它能确保已知漏洞及时被修补,减少被攻击的风险。
首先更新软件包列表并安装:
sudo apt update
sudo apt upgrade
sudo apt install unattended-upgrades
安装完成后,系统会自动创建一个 cron 任务和 systemd 计时器,用于周期性检查并安装更新。
主要配置文件有两个:
/etc/apt/apt.conf.d/20auto-upgrades
内容格式:
# 禁用
//APT::Periodic::Update-Package-Lists "0";
//APT::Periodic::Unattended-Upgrade "0";
# 启用:每天检查并自动安装
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
/etc/apt/apt.conf.d/50unattended-upgrades
默认配置大致如下(// 开头的行被忽略):
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESMApps:${distro_codename}-infra-security";
"${distro_id}ESM:${distro_codename}-infra-security";
};
Unattended-Upgrade::Package-Blacklist {
# 在此列出不需要自动更新的包
};
几个常用配置:
Allowed-Origins 中仅保留带 -security 后缀的行Package-Blacklist 中添加包名,每行一个Unattended-Upgrade::Automatic-Reboot "true"; 并设置 Unattended-Upgrade::Automatic-Reboot-Time "02:00";铁威马的系统配置和常见Linux系统配置不一样,搞了好半天。
假设需要启用IPv6的网卡为eth1
编辑 /etc/network 添加或修改配置为:
[eth1]
SLAVE=0
MTU=1500
DHCP=YES
IPV6_CONF=auto
IPV6_DEFROUTE=yes
IPV6INIT=YES
MtuStatus=0
echo 0 > /proc/sys/net/ipv6/conf/eth1/disable_ipv6
DHCP 获取IP
killall -2 nasips
因为要配置防火墙,需要固定NFS mount的绑定端口。之前的做法是配置/etc/default/nfs-kernel-server,配置RPCMOUNTDOPTS="--manage-gids -p 2050"。现在该配置文件已经失效,需要修改/etc/nfs.conf
[mountd]
# debug="all|auth|call|general|parse"
manage-gids=y
# descriptors=0
port=2050
| TCP Port | Where | Notes |
|---|---|---|
| 443 | vCenter Server, ESXi Host | Default port used for connections to VMware infrastructure (vCenter server and ESXi host). Must be opened on vCenter Servers and ESXi hosts. |
| 902 | ESXi Host | Port used for data transfer and moving. Must be opened on ESXi hosts. |
Rocky Linux 9 导入 GPG key,报错 warning: Signature not supported. Hash algorithm SHA1 not available.查询资料得知,SHA1算法已被弃用。
update-crypto-policies --set DEFAULT:SHA1update-crypto-policies --set DEFAULT参考资料:
https://www.redhat.com/en/blog/rhel-security-sha-1-package-signatures-distrusted-rhel-9
本文摘自 https://oi-wiki.org/intro/symbol/
本文规定了 OI Wiki 中数学符号的推荐写法,并给出了一些应用范例。
本文参考了 GB/T 3102.11-1993 和 ISO 80000-2:2019 修订,故基本与国内通行教材的符号体系兼容。
符号的 LaTeX 写法请参考 本文章的源代码
| 编号 | 符号,表达式 | 意义,等同表述 | 备注与示例 |
|---|---|---|---|
| n1.1 | $p \land q$ | $p$ 和 $q$ 的合取 | $p$ 与 $q$. |
| n1.2 | $p \lor q$ | $p$ 和 $q$ 的析取 | $p$ 或 $q$;此处的 “或” 是包含的,即若 $p$,$q$ 中有一个为真陈述,则 $p \lor q$ 为真。 |
| n1.3 | $\lnot p$ | $p$ 的否定 | 非 $p$. |
| n1.4 | $p \implies q$ | $p$ 蕴含 $q$;若 $p$ 为真,则 $q$ 为真 | $q \impliedby p$ 和 $p \implies q$ 同义。 |
| n1.5 | $p \iff q$ | $p$ 等价于 $q$ | $(p \implies q) \land (q \implies p)$ 和 $p \iff q$ 同义。 |
| n1.6 | $(\forall~x \in A)~~p(x)$ | 对 $A$ 中所有的 $x$, 命题 $p(x)$ 均为真 | 如果从上下文中可以得知考虑的是哪个集合 $A$, 可以使用记号 $(\forall~x)~~p(x)$.$\forall$ 称为全称量词。 $x \in A$ 的含义见 n2.1. |
| n1.7 | $(\exists~x \in A)~~p(x)$ | 存在一个属于 $A$ 的 $x$ 使得 $p(x)$ 为真 | 如果从上下文中可以得知考虑的是哪个集合 $A$, 可以使用记号 $(\exists~x)~~p(x)$.$\exists$ 称为存在量词。 $x \in A$ 的含义见 n2.1. $(\exists!~x)~~p(x)$(唯一量词)用来表示恰有一个 $x$ 使得 $p(x)$ 为真。 $\exists!$ 也可以写作 $\exists^1$. |
在虚拟化环境中,随着业务增长,磁盘空间不足是常见问题。本文记录在 CentOS 7/8 环境下扩展 LVM 磁盘空间的完整流程。
首先在虚拟化平台(VMware / KVM / Proxmox 等)上扩大虚拟磁盘容量。以 VMware 为例:
扩展后,操作系统层面不会自动识别新增的空间,需要手动操作。
# 查看块设备信息
lsblk
# 查看磁盘分区表
fdisk -l /dev/sda
# 查看PV/VG/LV状态
pvdisplay
vgdisplay
lvdisplay
假设当前磁盘 /dev/sda 有一个分区 /dev/sda1,PV 为 /dev/sda1,VG 名为 centos,LV 名为 root,挂载点为 /。