我遇到了 NFS 问题,我不知道如何解决。我花了一些时间试图找到答案,但没有成功。我最终试图实现以下设置,而不必单独安装每个子目录,因为这些子目录可能会随着时间的推移而动态变化,并且该路线不会扩展。
NFS Server1导出/srv/files/并在该目录中包含这些子目录,其中包含客户端所需的实际文件
/srv/files/0001/
/srv/files/0002/
/srv/files/0003/
/srv/files/0004/
Run Code Online (Sandbox Code Playgroud)
NFS Server2导出自己的/srv/files ,并且该目录中的结构类似,但子文件夹的名称相对于 NFS Server1 文件夹是唯一的
/srv/files/0005/
/srv/files/0006/
/srv/files/0007/
/srv/files/0008/
Run Code Online (Sandbox Code Playgroud)
NFS 客户端可以将两个 NFS 服务器共享挂载为只读,但位于同一目录中:
/srv/nfs/0001
/srv/nfs/0002
/srv/nfs/0003
/srv/nfs/0004
/srv/nfs/0005
/srv/nfs/0006
/srv/nfs/0007
/srv/nfs/0008
Run Code Online (Sandbox Code Playgroud)
这可以吗?NFS 是正确的途径吗?同样,我不需要将数据写入 NFS 服务器,只需读取即可。
如何判断两个 ZFS 快照是否相同或只是名称相同?
假设我有两台名为host-a和 的计算机host-b。还假设host-a有一个名为 的 ZFS 数据集/tank/mydataset。
在主机 a 上,我可以:zfs snapshot tank/mydataset@mysnapshot' and then I could 'zfs send tank/mydataset@mysnapshot | ssh host-b zfs receive tank/mydataset
这意味着和 上@mysnapshot都是相同的。host-ahost-b
另一方面,host-a我可以:zfs snapshot tank/mydataset@mysnapshot后面跟着ssh host-b zfs snapshot tank/mydataset@mysnapshot.
在第二种情况下,两个快照的名称相同,但数据集可能截然不同。
查看 的属性tank/mydataset@mysnapshot并没有列出任何明显的方法来识别快照是否相同——即 GUID 或哈希值。
除了尝试拍摄另一个快照host-a tank/mydataset@mysnapshot2并尝试发送到host-bvia之外zfs send -i @mysnapshot tank/mydataset@mysnapshot2 | ssh host-b zfs receive tank/mydataset,是否有一种方法可以确定快照不仅在名称上相同,而且在块上也相同?
如何检查已设置用户和密码的 MySQL 数据库的准备情况?
如果没有密码,命令应该是:
mysqladmin ping -h localhost
Run Code Online (Sandbox Code Playgroud)
MYSQL_ROOT_PASSWORD在我的测试环境中,MySQL 数据库已经在名为 的环境变量中设置了密码abc123。仅仅提供密码似乎并-p不能解决问题:
mysqladmin ping -h localhost -p abc123
Run Code Online (Sandbox Code Playgroud)
MySQL 数据库平均启动时间约为 20 秒。
在 Nginx 文档中,有关于三种不同网络超时的指令,可以为“后端”服务器配置这些超时,如下所示:
proxy_connect_timeout定义与代理服务器建立连接的超时。需要注意的是,这个超时时间通常不能超过75秒。
这很容易理解——Nginx 即将连接到上游“后端”服务器,如果它无法在 X 时间内连接,它将放弃并返回错误。服务器无法访问、连接过多等。
proxy_read_timeout定义从代理服务器读取响应的超时。仅在两个连续的读取操作之间设置超时,而不是为整个响应的传输设置超时。如果代理服务器在此时间内未传输任何内容,则连接将关闭。
这也是有道理的——Nginx 已经与“后端”服务器建立了 TCP 连接,现在即将实际发送请求,但是服务器需要很长时间来处理,如果需要超过 X 时间,则关闭连接并返回给用户。
事实上,我很惊讶 Nginx 关闭了连接,我认为它会保留连接,但会向用户返回一个错误。每次发生超时时重新建立这些“后端”TCP 连接听起来成本很高。
proxy_send_timeout设置将请求传输到代理服务器的超时。仅在两个连续的写入操作之间设置超时,而不是为整个请求的传输设置超时。如果代理服务器在此时间内未收到任何内容,则连接将关闭。
这个我不太明白。我确实有一个理论,但我希望有人证实它。我能想到的这个超时的唯一值是请求负载是否很大(例如,带有 JSON 的大型 POST 请求,或用户想要保存的文档)。将请求传输到“后端”需要将请求分解为更小的 MTU TCP 段,并将它们作为原始请求的“块”发送。因此从技术上讲,直到我们成功地将所有块传输到服务器之前,我们实际上并没有发送请求。Nginx 是否测量每个请求块之间的时间?这就是文档中“写”的意思吗?一旦请求实际发送,Nginx 将开始测量proxy_read_timeout?
我们正在考虑为客户端更换旧服务器,当我们安装此服务器时,它遵守我们的命名约定(即,SVR-DC因为它是网络上唯一的 DC)。
现在我们要迁移到新服务器(新硬件和新操作系统),在迁移时重命名两个 DC 是否可行/建议?理想情况下:
或者,可以选择将旧 DC(它运行 2012 r2)作为辅助,但它是一个使用良好的安装,需要进行一些清理。
active-directory migration domain-controller windows-server-2012-r2 windows-server-2019
我一直在研究使用 AWS cli 进行数据完整性检查,以验证备份是否已从 Linux 文件服务器正确传输到 AWS s3。同样,我想验证将文件从备份恢复到 Linux 文件服务器时是否也正确传输。
我检查了 S3 上与对象一起存储的 etag,因为它似乎是 md5sum。但是,如果在大文件的情况下将文件作为分段传输,则 etag 将不再有效。
但在我进一步尝试对每次刚刚同步到 S3 的内容进行 MD5sum 之前,真的有必要这样做吗?当通过互联网在 Linux 文件系统之间使用 rsync 时,对传输的文件进行 md5sum 来验证它们并不常见。因为假设我认为 rsync 已经解决了这个问题?
所以我想知道 AWS clisync 是否已经为我们处理了数据完整性检查?
主办方:数字海洋
\n\n操作系统: CentOS
\n\n我有一个涵盖我的域的现有 SSL 证书。
\n\n$ certbot certificates产生这个输出。
Found the following certs:\n Certificate Name: example.com\n Domains: example.com www.example.com\n Expiry Date: 2020-04-12 21:20:31+00:00 (VALID: 86 days)\n Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem\n Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem\nRun Code Online (Sandbox Code Playgroud)\n\n我安装了postfix并且我相信我需要将mail.example.com添加到我的证书中。
我尝试使用此命令将mail.example.com添加到我的证书中,
\n\n$ sudo certbot certonly --standalone -d mail.example.com
不幸的是它抛出了这个错误,
\n\nSaving debug log to /var/log/letsencrypt/letsencrypt.log\nPlugins selected: Authenticator standalone, Installer None\nStarting new HTTPS connection (1): acme-v02.api.letsencrypt.org\nObtaining a new certificate\nPerforming the following …Run Code Online (Sandbox Code Playgroud) 我已经搜索过,但未能找到答案,我没有想法。我只是对 postfix 和 dovecot 不够了解,无法解析配置或了解可能导致此错误的原因。
warning: SASL: Connect to /var/spool/postfix/private/auth failed: No such file or directory
fatal: no SASL authentication mechanisms
Run Code Online (Sandbox Code Playgroud)
我无法使用 SASL 连接外部客户端(例如 Thunderbird)来进行 postfix。我希望这是显而易见的事情,但我就是看不到它。
/var/spool/postfix/private/auth存在。它属于 postfix 所有。Dovecot 设置为使用 postfix 作为用户
Dovecot 正在运行并监听:
unix 2 [ ACC ] STREAM LISTENING 241906 12768/dovecot /var/spool/postfix/private/auth
postconf -n输出:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
compatibility_level = 2
inet_interfaces = all
inet_protocols = all
local_recipient_maps = $virtual_mailbox_maps
local_transport = virtual
mailbox_size_limit = …Run Code Online (Sandbox Code Playgroud)我已经在 Ubuntu 上安装了 postgres 并将我切换到 postgres 用户。我已经打开psql创建了一个数据库,然后决定切换回root。但是,它不允许我:
sudo su -
Run Code Online (Sandbox Code Playgroud)
结果它问我
[sudo] password for postgres:
Run Code Online (Sandbox Code Playgroud)
我尝试输入只是为了得到
Sorry, try again
Run Code Online (Sandbox Code Playgroud)
然后我决定尝试使用以下答案更改 postgres 密码:
ALTER USER postgres WITH PASSWORD 'postgres';
Run Code Online (Sandbox Code Playgroud)
它看起来有效,但是在尝试再次切换到 root 后,它仍然不允许我。
我在一家没有“netcat”的银行工作。我遇到了问题,其中两个 DNS 服务器中的一个宕机造成影响。为了进行故障排除,我需要捕获来自 DNS 客户端 (AIX) 的请求(传入和传出)。我该怎么做?netstat 用的选项不做,我用过