基本上我需要能够扫描进程树并找到与某个名称匹配并开始运行一个多星期的进程。一旦我拥有它们,我就需要杀死它们。所有进程仍然被系统视为处于运行状态,只是不使用任何系统时间。他们通常也会永远处于这种状态。
理想情况下,我想要类似的东西,但对于流程。
系统是 Debian linux,这将由 cron 编写和运行,所以我对一些大但可以理解的东西没有真正的问题。
我遇到了麻烦,我有一个正在运行的服务器,带有常用的服务(httpd、mail、sql),看起来我必须非常快以防止数据丢失(我的 RAID 阵列失败,所以我依赖于一个现在硬盘)。
整个系统建立在 HowtoForge 的 howto 上,当我阅读Squeeze 上的那个时,看起来我可以轻松做到吗?将我的(虚拟)用户迁移到新盒子上。
我真的知道这是一个非常具体的问题,但你能告诉我整个迁移过程的一些重要点吗?哪些事情可能很棘手,我最多应该关注哪里?你会如何开始这个过程?
一些背景信息:
我的(真的)基本大纲:
我的盲点:
我的服务器变慢了,我不知道为什么。
从顶部打印:
top - 14:32:50 up 639 days, 6:30, 1 user, load average: 67.93, 70.63, 79.85
Tasks: 245 total, 1 running, 244 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.9% us, 0.5% sy, 0.0% ni, 94.5% id, 1.0% wa, 0.0% hi, 0.0% si
Mem: 1034784k total, 1021256k used, 13528k free, 4360k buffers
Swap: 1023960k total, 635752k used, 388208k free, 36632k cached
Run Code Online (Sandbox Code Playgroud)
vmstat 10 6
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in …Run Code Online (Sandbox Code Playgroud) 我的问题是: Debian 6.0 (Squeeze) 中默认启用了哪些缓冲区溢出/堆栈粉碎防御(如果有)?
Ubuntu 有一个方便的汇总表,显示了每个服务器版本发行版的主要安全特性,但我还没有找到与 Debian 类似的东西。Ubuntu 提到:
Debian 6.0 在多大程度上使用了类似的技术(默认情况下)?
我有一个 golang 程序,我想在它在 Debian Squeeze 框上终止后重新启动。事情是在 Apache 2 mod_proxy 设置后面提供 HTTP。我不希望这个过程失败,但我想有一些保险。
在 Ubuntu 上,我会使用 upstart 来保持进程的活跃。据我所知,Debian 不喜欢 Upstart,因为它是 init 的替代品。
有没有一种替代方法可以在一个或多个进程终止后重新启动它们,该进程在 Squeeze 上工作并与 init 一起玩得很好?
我们有很多服务器,但仍想全部更新。实际的方法是任何系统管理员从一个服务器到另一个服务器并制作一个aptitude update && aptitude upgrade- 这仍然不是很酷。
我现在正在寻找一个更好、更智能的解决方案。人偶可以做这个工作吗?你怎么做呢?
由于磁盘故障,我们最近重新安装了我们的服务器,现在我们在调整终端大小时遇到了问题。我们安装了 Debian 6.0.6。
症状
当您调整终端大小时,似乎没有基于 ncurses 的应用程序(已测试:ytalk、irssi、screen、tmux、一些 ncurses 示例应用程序)正确调整大小。屏幕通常以空白结束。在应用程序中强制重绘将使用旧的终端大小重绘。
在 bash (4.1.5(1)) 提示符下调整窗口大小时,COLUMNS 和 LINES 变量永远不会更新。
诊断
试图在 bash 中捕获 SIGWINCH,它似乎从未被接收到。这是经过测试的:
trap 'touch /home/user/sigwinch' SIGWINCH
trap 'touch /home/user/sigusr1' SIGUSR1
kill -s SIGWINCH $$
kill -s SIGUSR1 $$
Run Code Online (Sandbox Code Playgroud)
这应该在我的主目录中创建了这两个文件。它只创建了/home/user/sigusr1.
尝试kill -s SIGWINCH $$不会导致 $COLUMNS/$LINES 变量的更新。
启用checkwinsize( shopt -s checkwinsize) 将导致 bash 在从任何应用程序返回时更新 $COLUMNS/$LINES(如预期)。在checkwinsize启用启用的终端调整大小后,这会导致以下结果:
$ echo $COLUMNS ; ls > /dev/null ; echo $COLUMNS
72
107
Run Code Online (Sandbox Code Playgroud)
将我的登录 shell 更改为 tcsh 之类的内容并尝试调整终端的大小按预期工作,就像我测试的其他盒子上的 bash 一样。 …
我有一台运行 Debian 6.0 且安装了 logcheck 的服务器。昨天,我收到了这样一条消息:
Jan 19 19:15:10 hostname sshd[28397]: Authentication tried for root with correct key but not from a permitted host (host=4.red-2-140-77.dynamicip.rima-tde.net, ip=2.140.77.4).
Run Code Online (Sandbox Code Playgroud)
我不知道这是谁,我怀疑他是偶然出现的。
现在,我该怎么办?
我做的第一件事是禁用 ssh 密码身份验证并切换到公钥/私钥。我还检查了authorized_keys 文件,只看到了我的公钥
接下来是什么?
我怎么知道其他人在我的机器上做了什么?
我设置了一个 Puppet Master/Agent,并且已经成功地为 master 上的 agent 签署了证书。但是,当我运行时,puppet agent --test我遇到了如下所示的失败:
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]
Info: Retrieving plugin
Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]
Error: /File[/var/lib/puppet/lib]: Could not evaluate: SSL_connect returned=1 errno=0 state=SSLv3 read server …Run Code Online (Sandbox Code Playgroud) 问题
我想在 Linux 上的 SSD 磁盘内的交换分区上启用后台TRIM 操作。根据几篇文章,例如这篇文章,内核会检测此配置并自动执行丢弃操作,但在我的测试中,尽管使用“丢弃”挂载选项来强制执行此行为,但它似乎不起作用。
设想
背景
这些是我用来检查后台 TRIM 是否在交换分区上工作的步骤:
TRIM 支持:检查 SSD 磁盘是否支持 TRIM 命令并且内核将设备标记为非旋转:
# hdparm -I /dev/sda | grep TRIM
* Data Set Management TRIM supported (limit 1 block)
* Deterministic read data after TRIM
# cat /sys/block/sda/queue/rotational
0
Run Code Online (Sandbox Code Playgroud)交换填充:挂载分区,清理所有 VM 缓存并配置 Linux 以积极交换,将 vm.swappiness 设置为 100。然后,运行一个脚本来分配所有可用内存并强制内核开始交换:
# swapon [--discard] /dev/sda2
# …Run Code Online (Sandbox Code Playgroud)