推荐升级路径,TL;DR:
备份数据,然后
apt update
apt upgrade
apt dist-upgrade
reboot
Run Code Online (Sandbox Code Playgroud)
还要禁用所有非主流包(如果有)。
然后为新发行版准备 APT:
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/*
Run Code Online (Sandbox Code Playgroud)
第一个命令显示错误:
apt update
...
Err:6 http://security.debian.org/debian-security bullseye/updates Release
404 Not Found
Reading package lists... Done
E: The repository 'http://security.debian.org/debian-security bullseye/updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Run Code Online (Sandbox Code Playgroud) 我已经在我的 Debian 10 服务器上成功设置了WireGuard VPN。与 OpenVPN 的设置相比,它非常简单,而且运行良好。
但是,除了来自journalctl -u wg-quick@wg0.service. 例如,我想知道什么时候认证尝试失败。有没有办法监控?例如,使用 openvpn 我可以使用基于身份验证尝试的 fail2ban。
我将 Debian 9 升级到 10 Buster 服务器在重新启动后 24 小时后失去网络连接,我认为问题是它无法从 DHCP 服务器更新 IP 地址。
\n\n我看到里面有过期日期的/var/lib/dhcp文件。dhclient.eth0.leases
该服务在 Debian 9 上正常,在 Debian 10 上我看到此错误:
\n\nroot@debian:~# systemctl status networking.service\n\xe2\x97\x8f networking.service - Raise network interfaces\n Loaded: loaded (/lib/systemd/system/networking.service; enabled;\nvendor preset: enabled)\n Active: failed (Result: exit-code) since Thu 2019-07-25 15:18:02\nCEST; 2h 39min ago\n Docs: man:interfaces(5)\n Process: 380 ExecStart=/sbin/ifup -a --read-environment\n(code=exited, status=1/FAILURE)\n Main PID: 380 (code=exited, status=1/FAILURE)\n\nJul 25 15:18:01 debian-2gb-nbg1-2 dhclient[402]: DHCPREQUEST for\n116.203.xx.xx on eth0 to 255.255.255.255 port 67\nJul 25 15:18:01 …Run Code Online (Sandbox Code Playgroud) 由于更新到 Debian Buster,date在终端上运行以 AM/PM 格式显示时钟,而不是 24 小时时钟。这是新的,发生在所有更新的安装中。
Docker 容器:
yeri@b9b3e889fd76 ~ $ date
Thu 01 Aug 2019 11:28:25 PM +08
Run Code Online (Sandbox Code Playgroud)
本地主机:
liana ~ # date
Thu 01 Aug 2019 11:32:44 PM +08
Run Code Online (Sandbox Code Playgroud)
数字海洋:
ui0 ~ # date
Thu 01 Aug 2019 05:33:11 PM CEST
Run Code Online (Sandbox Code Playgroud)
这很烦人,我没有要求这样做 - 但是找不到更改它的设置。
我唯一能想到的是语言环境设置为美国;但之前的情况也是如此(Debian 9):
ui0 ~ # cat /etc/default/locale
# File generated by update-locale
LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
yeri@b9b3e889fd76 ~ $ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8" …Run Code Online (Sandbox Code Playgroud) 很多地方都可以配置Fail2ban。
$ fail2ban-client -i
Fail2Ban v0.10.2 reads log file that contains password failure report
and bans the corresponding IP addresses using firewall rules.
Run Code Online (Sandbox Code Playgroud)
在 Debian Buster 上,我可以在几个配置文件中编辑我的设置:
/etc/fail2ban/jail.d/defaults-debian.conf
/etc/fail2ban/fail2ban.conf
/etc/fail2ban/jail.conf
/etc/fail2ban/action.d/
Run Code Online (Sandbox Code Playgroud)
一些教程推荐:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Run Code Online (Sandbox Code Playgroud)
fail2ban 的文档说:
修改应该发生在 .local 而不是 .conf 中。这避免了升级时的合并问题。这些文件都有详细的文档记录,并且应该可以在那里获得详细信息。
这是否意味着我要编辑的每个 .conf 文件都应该作为 .local 文件存在?
我很迷惑!有人可以对此有所了解吗?
我试图找出将 24x 本地连接的 SSD 配置为具有低价值数据的大型逻辑卷的最低麻烦方法。我将它们用作主状态(大约 PB 级)驻留在 S3 中的数据的热设置缓存,因此与丢失的数据相比,我更关心性能、维护的复杂性和停机时间。没有任何东西会在热数据集中停留超过几天,无论如何都可以轻松地从 S3 重新创建。
我认为 RAID 5 是不可能的,我不可能等待手动重建。我倾向于使用 RAID 0、RAID 10 或......也许这实际上是一个根本没有 RAID 的简单 LVM 池的情况?在这种情况下,走相对简单的路线,我真的会失去任何东西吗?
我的理想解决方案是将每个/子目录(每个子目录都有一个自包含的数据集)完全包含在单个磁盘上(我可以在每个驱动器上安装 10 个子目录)。如果驱动器出现故障,我会暂时中断该驱动器上的子目录/数据集,但很容易推断“这些数据集正在重新下载但不可用”。然后我只是在新驱动器上从 S3 重建丢失的数据集。我怀疑 LVM jbods(不确定这个词的确切含义?)可能最接近复制这种行为。
我使用的是 Debian 10 buster。的输出sudo ifconfig -a是
enp0s7: flags=xxxx<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.xx.xxx netmask 255.255.xxx.x broadcast 192.168.xx.xxx
inet6 xxxx:xxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx prefixlen xx scopeid 0x0<global>
inet6 xxxx::xxxx:xxxx:xxxx:xxxx prefixlen xx scopeid 0x20<link>
inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx prefixlen xx scopeid 0x0<global>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 68866 bytes 72160614 (68.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 33033 bytes 5158947 (4.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet …Run Code Online (Sandbox Code Playgroud) Debian10 似乎删除了命令poweroff、reboot和dpkg-reconfigure,可能还有其他命令。我该怎么做而不是dpkg-reconfigure locales?
作为旁注,我阅读了发行说明,我认为当您阅读这些内容时没有对您大喊大叫是荒谬的。
# dpkg-reconfigure
bash: dpkg-reconfigure: command not found
Run Code Online (Sandbox Code Playgroud)
编辑:我已经知道我可以通过安装一个包来获得 dpkg-configure bin:debconf。默认情况下未安装此软件包。这通常表示弃用。
我需要开发一个/etc/init.d脚本来启动和停止 Debian 10 Buster 中的服务器(二进制可执行文件)。而在 Debian 的早期版本中,您将编写一个完整的 shell 脚本来发出对 的调用'start-stop-daemon',而在最近的版本中,这些机制似乎已经被抽象掉了。手册页'init-d-script'提供了一个简单的脚本,该脚本将根据设置单个变量来启动和停止服务器'DAEMON'。
但是,我需要在服务器启动后通过将锁定文件写入磁盘来进行自定义,更改当前工作目录并将自定义参数传递给服务器。
手册页指的是开发覆盖函数,例如'do_start_override'和'do_stop_override'可能会被调用而不是默认函数。我应该如何编写覆盖函数?我应该'do_start_cmd()'从中复制和粘贴函数'/lib/init/init-d-script'并修改它吗?或者我应该调用'start_daemon()'中定义的函数'/lib/lsb/init-functions'?
刚刚升级了 Debian,named 现在还没有启动。我配置了 2 个日志通道:
channel "named_log" {
file "/var/log/bind/named.log" versions 10 size 2m;
severity dynamic;
print-category yes;
print-severity yes;
print-time yes;
};
channel "query_log" {
file "/var/log/bind/query.log" versions 2 size 100k;
severity dynamic;
print-severity yes;
print-time yes;
};
Run Code Online (Sandbox Code Playgroud)
一切正常,直到升级。这是目录:
root@dom:/var/log/bind# ls -la /var/log/bind
total 156
drwxrwsr-x 2 bind bind 4096 Oct 30 17:14 .
drwxr-xr-x 36 root root 4096 Oct 30 15:41 ..
-rw-r----- 1 bind bind 149847 Oct 30 17:45 bind9.log
root@dom:/var/log/bind# id bind
uid=110(bind) gid=118(bind) groups=118(bind)
root@dom:/var/log/bind# …Run Code Online (Sandbox Code Playgroud) 在 Debian 10 服务器上,我遇到了 clamav 的问题:
root@vps:~# clamscan -r -v --stdout /
Killed
Run Code Online (Sandbox Code Playgroud)
你看我使用了详细标志,但这并没有给我任何信息。使用蛤蜊多年以来,我没有遇到过这个问题。我知道这不是数据库问题:
root@vps:~# freshclam
Sun Mar 1 00:18:39 2020 -> ClamAV update process started at Sun Mar 1 00:18:39 2020
Sun Mar 1 00:18:39 2020 -> daily.cvd database is up to date (version: 25737, sigs: 2201376, f-level: 63, builder: raynman)
Sun Mar 1 00:18:39 2020 -> main.cvd database is up to date (version: 59, sigs: 4564902, f-level: 60, builder: sigmgr)
Sun Mar 1 00:18:39 2020 -> bytecode.cvd database …Run Code Online (Sandbox Code Playgroud) 我注意到我跟踪到 MariaDB 的系统内存使用百分比(如 sar 报告)稳步增加。它似乎与数据库负载无关:这种增加与查询数量的增加不匹配。
我有以下尺寸配置:
key_buffer_size = 400000000
innodb_buffer_pool_size = 1210612736
Run Code Online (Sandbox Code Playgroud)
总共有 1.5GB,但它现在在 RSS 内存上达到了 2.3GB。
为什么变得这么贪婪?我可以让它更好地坚持它的极限吗?或者它可能坚持 InnoDB 的限制,但将内存用于其他用途,如果是这样,有没有办法理解这一点,以便我可以调整配置以将总内存使用量保持在一定水平内?或者它可能就像 Linux 内核一样,只是在空闲时使用所有空闲内存进行缓存,但根据需要愉快地放弃它?
我在 Debian 10 (Buster) 上使用 MariaDB 10.3.22。工作负载是一个网络服务器(所以我需要为其他进程保留一些内存:nginx+php)。如果需要,很高兴发布更多配置。
debian-buster ×12
debian ×7
apt ×1
bind ×1
clamav ×1
dhclient ×1
dhcp ×1
fail2ban ×1
init.d ×1
ipv6 ×1
linux ×1
localization ×1
lsb ×1
lvm ×1
mariadb ×1
memory-usage ×1
mysql ×1
permissions ×1
raid ×1
systemd ×1
upgrade ×1
wake-on-lan ×1
wireguard ×1