我们已经近十年没有升级我们的 RDBMS 或服务器操作系统。另一个关键任务软件包已经有将近 20 年的历史了,并且在那段时间的大部分时间里都没有得到其供应商的支持。我们管理层中的一些人似乎认为这是一件好事——我们通过不购买升级而节省了大量资金!现在一个关键的软件需要升级,但新版本将不支持十年前的东西。现在,我们中的一些人正在脱发,试图弄清楚如何以最少的停机时间立即升级所有内容。
为了在未来避免这种情况,我们中的一些人正在考虑创建一个 IT 战略计划文件(这将适合组织的战略计划,充实与 IT 相关的更大文档中的项目......也许使 IT 文档成为一种战术计划?)希望我们能够将其作为该机构总体战略计划的一部分。我自愿尝试组装“软件生命周期管理”(或类似的东西)部分来解决上面提到的问题(黄铜大头针可能在战略计划的单独文件中)。几乎所有软件供应商都会发布其产品的生命周期和弃用计划,考虑到该信息以及我们组织的需求,很容易确定每个软件的“最佳位置”。棘手的部分(无论如何对我来说)是将每个部分的计划放在一起变得更有凝聚力。
我如何记录桌面客户端 A、B、C... 依赖于桌面 OS X 和 RDBMS Y,而后者又依赖于服务器 OS Z,然后我们如何将它们保持在“最佳位置”?那里肯定有书,但我所有的谷歌搜索只让我了解升级单个软件的策略,而不是确定何时实施这些策略的策略。
我们目前测试了大量设备,每 10 台设备有一台 PC(我们每台 PC 使用两个 USB 集线器来连接设备)。我们拥有大量的 PC,这正在变成管理的噩梦。我一直在思考我们如何能够虚拟化我们的基础设施,但我遇到了一个问题,即如何从 VM 获得大量 USB 连接到设备所连接到的另一个房间中的 USB 集线器。
我想我们可以设置一个服务器机房来托管 VM 集群,这将取代 PC,但我需要一种方法,让每个 VM 有 2 个 USB 连接,可在所有设备所在的其他机房中使用。我希望人们能就我如何做到这一点提出一些建议(技术/通信协议/等),因为我只找到了网络附加 USB,这似乎可行,但对于我找到的一个供应商 (digi.com) ,只支持USB2。此外,digi 是唯一提供该技术的供应商,因此当我们按照我们所考虑的规模进行构建时,这让我非常紧张。我希望找到替代的连接方式(以太网上的 PCIe?),这将使我能够更有效地做到这一点,或者至少获得更广泛的支持。另外,我也希望能够支持 USB3。
我最希望的是虚拟机上的虚拟 USB 端口在另一个房间显示为物理 USB 端口 - 这就是我真正想要的。我还考虑过有一个带有一堆 USB 卡的大型机箱,从这些卡到 USB 光纤适配器,但这引入了很多连接。其他想法是如何将外部 PCI 机箱移动到安装了大量 USB 卡的设备(以太网上的 PCIe?)并从那里断开?我愿意接受建议!
如果这确实是将 I/O 从服务器机架连接到设备的唯一方法,我也愿意将 VM 集群放置在设备所在的房间内,但我真的更希望集群位于服务器机房,然后 I/O 从那里分支出来。
澄清一下,我想在一个房间里有物理 USB 端口,虚拟 USB 端口显示在 VM 上。我如何从一个地方到另一个地方是完全开放的建议。
在ActiveRecord::StatementInvalid昨天的 4 小时内,我们看到MySQL 服务器出现零星错误。从那以后这些错误就没有发生过。
奇怪的是,SQL 语句似乎已被破坏:一个随机字符或更多向后或向前移动 2 个字节。例如,"Unknown table 'erades'"对于一个grades表的查询。这不仅限于表名:列名、SQL 关键字和值都在这些查询中受到影响。
错误消息示例:
.->,:表'[数据库名称].id'不存在:SELECT [..] FROM [..] INNER JOIN [..] ON [..] = `[table name]`.`id`。 .
`->b:不正确的表名'topic_setsb ON':SELECT [..] FROM [..] INNER JOIN `topic_sets` ON ...
s->q:'field list'中的未知列'aqsigned_[redacted]'
U->W:您的 SQL 语法有错误;[..] 'NWLL GROUP BY ...
8->附近::您的 SQL 语法有错误;[..] near ':887)' at line 1: SELECT [..] WHERE [..] IN …
首先我很抱歉,因为我是开发人员,试图了解一些服务器的东西。如果这个问题在这里没有任何意义,我请求版主不要太苛刻。
根据我的理解,我们在 docker hub 中有 docker 镜像,用于运行容器。所以对我来说 docker hub 镜像是镜像包。为了管理容器,我们使用 kubernates。现在 helm 是 kubernates 的包管理器。Helm charts 是 docker-images 或 kubernate clusers 的包还是什么?
我使用Nagios Core、NRPE和check_disk监控 Ubuntu 服务器上的可用磁盘空间。
在以前的 Ubuntu 版本中,我曾经得到类似这样的输出:
DISK OK - free space: / 43754 MB (80% inode=86%):
Run Code Online (Sandbox Code Playgroud)
相反,在 Ubuntu 18.04.1 上,我得到:
DISK OK - free space: /var/tmp 43754 MB (80% inode=86%):
Run Code Online (Sandbox Code Playgroud)
我看到/var/tmp根/分区的安装点不正确。我跟踪此行为依赖PrivateTmp=true于nagios-nrpe-server.service:
/var/tmp并发现了一个名为systemd-private-c5b5d3d362364af19af640147f2cb844-nagios-nrpe-server.service-4uILRyPrivateTmp=true不存在)/我觉得我面临三个选择:
忍受它。
消除PrivateTmp=true。
找到合理的解决方法。
我倾向于接受它,但如果我更清楚没有私人/tmp服务的影响,我可以对选项 2 做出明智的选择。
最佳解决方案可能是找到一种解决方法,指示check_disk即使在这种情况下也返回正确的安装点信息。无法访问系统/tmp不应构成障碍。
问题:请说明 的含义PrivateTmp=true,解释为什么建议使用它,在什么情况下以及有哪些注意事项可以将其删除。
第二个问题:check_disk …
我正在运行一个没有交换的 Linux 工作站,并且我已经安装了earlyoom守护进程,以便在 RAM 不足时自动终止一些进程。它earlyoom通过监视内核MemAvailable值来工作,如果可用内存变得足够低,它会杀死不太重要的进程。
这已经工作了很长一段时间,但突然间我遇到了MemAvailable与系统其他部分相比突然非常低的情况。例如:
$ grep -E '^(MemTotal|MemFree|MemAvailable|Buffers|Cached):' /proc/meminfo
MemTotal: 32362500 kB
MemFree: 5983300 kB
MemAvailable: 2141000 kB
Buffers: 665208 kB
Cached: 4228632 kB
Run Code Online (Sandbox Code Playgroud)
请注意 MemAvailable 远低于MemFree+ Buffers+ Cached。
我可以运行任何工具来进一步调查为什么会发生这种情况吗?我觉得系统性能比正常情况要差一些,我不得不停止该服务,因为除非稳定(即它正确地描述了用户模式进程的可用内存),earlyoom否则它的逻辑将无法工作。MemAvailable
根据https://superuser.com/a/980821/100154 MemAvailable 是对可用于启动新应用程序(无需交换)的内存量的估计。由于我没有交换,这是什么意思?这是否意味着在触发 OOM Killer 之前新进程可以获取的内存量(因为这在逻辑上会遇到“交换已满”的情况)?
我曾假设MemAvailable>=MemFree总是正确的。不在这里。
附加信息:
在互联网上搜索表明,原因可能是打开的文件不受文件系统支持,因此无法从内存中释放。该命令sudo lsof | wc -l输出653100所以我绝对无法手动浏览该列表。
顶部sudo slabtop说
Active / Total Objects (% used) …Run Code Online (Sandbox Code Playgroud) 是否可以创建一个依赖于其他几个服务的服务?什么是正确的语法?
如:
[Unit]
Description=service description
Wants=network.target
After=network.target
After=syslog.target
[Service]
User=bootapp
ExecStart=/var/app/app.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
目标是在操作系统重新启动后自动启动服务,并确保在服务之前启动日志记录和网络服务。
附加问题:我需要指定Restart吗?
我试图让 nginx 忽略index.html文件并始终显示模块中的目录列表autoindex。
如果我删除我的index行,nginx 仍然默认提供index.html文件,所以这不是一个解决方案。
Stack Overflow 上也提出了类似的问题,但我正在寻找一种不涉及发明虚假文件名的解决方案,如果存在这样的解决方案(更不用说该线程在那里偏离主题)。
如何更改index指令以告诉 nginx 从不显示索引文件?
我有以下 python 文件:
import time
from datetime import datetime
while True:
time.sleep(1)
print(datetime.now())
Run Code Online (Sandbox Code Playgroud)
我已将其添加到 Dockerfile 中:
FROM python:3.7
WORKDIR /test
COPY test.py /test/
CMD ["python", "test.py"]
Run Code Online (Sandbox Code Playgroud)
如果我构建这个并运行
sudo docker run -it --name test myimage
Run Code Online (Sandbox Code Playgroud)
一切都很棒。大约每秒打印一次当前时间。
另一方面,如果我运行它:
sudo docker run -d --name test myimage
Run Code Online (Sandbox Code Playgroud)
它会跑到后台,但如果我这样做......
sudo docker logs test
Run Code Online (Sandbox Code Playgroud)
我什么也得不到!不是什么该死的事情。
任何线索为什么会发生这种情况,或者我怎样才能弄清楚?当我使用时-d和不运行时docker inspect它都会给我"Type": "json-file", "Config": {}
我在 Ubuntu 18.04 上运行 Docker 18.06.1-ce,构建 e68fc7a。
我正在 Ubuntu Web 服务器上配置 Fail2Ban,以防止它成为 DoS / DDoS 的受害者。我不想使用 Cloudflare,因为我必须路由我的 DNS 并使用他们的 SSL 证书。
HEAD目前,我在网上找到了一个脚本,可以检查每秒是否有超过 1 个 HTTP请求,或者xmlrpc.php每秒是否有超过 1 个请求。我认为这不足以提供足够的保护,因为这些并不是人们可以用来执行 DDoS 攻击的唯一请求类型。
GET我正在考虑限制给定IPPOST在短时间内可以发出的请求数量,但我不确定应该如何设置限制,因为加载大量 Javascript、CSS 或图像的大页面会导致GET短时间内收到大量请求。我应该考虑限制GET/POST请求,还是应该考虑其他事情?为什么?