标签: debian

查找(并杀死)旧进程

基本上我需要能够扫描进程树并找到与某个名称匹配并开始运行一个多星期的进程。一旦我拥有它们,我就需要杀死它们。所有进程仍然被系统视为处于运行状态,只是不使用任何系统时间。他们通常也会永远处于这种状态。

理想情况下,我想要类似的东西,但对于流程。

系统是 Debian linux,这将由 cron 编写和运行,所以我对一些大但可以理解的东西没有真正的问题。

linux debian kill process

11
推荐指数
2
解决办法
3万
查看次数

迁移实时服务器

遇到了麻烦,我有一个正在运行的服务器,带有常用的服务(httpd、mail、sql),看起来我必须非常快以防止数据丢失(我的 RAID 阵列失败,所以我依赖于一个现在硬盘)。

整个系统建立在 HowtoForge 的 howto 上,当我阅读Squeeze 上的那个时,看起来我可以轻松做到吗?将我的(虚拟)用户迁移到新盒子上。

我真的知道这是一个非常具体的问题,但你能告诉我整个迁移过程的一些重要点吗?哪些事情可能很棘手,我最多应该关注哪里?你会如何开始这个过程?

一些背景信息:

  • 两台服务器相距 200 公里,因此迁移应该通过 Internet 进行
  • 两台服务器都是Debian,旧的是Etch,新的是Squeeze
  • 关键服务是邮件,网站可能会暂停一段时间
  • RAID 表示 RAID 1 中的两个磁盘(两台机器)
  • 旧框是所有托管域的 DNS1

我的(真的)基本大纲:

  • 建立一个和旧系统类似的系统(类似的虚拟邮件结构,密码以相同的加密类型存储,因为我无法告诉旧的)
  • 创建一个域,我可以在其中检查一切是否正常(DNS、电子邮件、www 都可以)
  • 逐个迁移域,直到旧域无所作为

我的盲点:

  • 找不到有关如何在 Squeeze 上执行 RAID-1 的简要说明(Lenny howto 就足够了?)
  • 如何在需要时复制具有特定用户权限的特定文件夹(例如用户的邮件文件夹)?(rsync 会这样做吗?)
  • 如何在新机器上设置DNS (旧机器是DNS1)(新机器也应该是DNS,迁移的域应该使用自己作为DNS1?)
  • 如何防止电子邮件丢失(由于 DNS 刷新时间)(我需要将新机器设置为 MX?)

domain-name-system email backup debian migration

11
推荐指数
1
解决办法
346
查看次数

平均负载高,cpu 低

我的服务器变慢了,我不知道为什么。

从顶部打印:

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 load-average

11
推荐指数
1
解决办法
9086
查看次数

Debian 6.0 (Squeeze) 有缓冲区溢出保护机制吗?

我的问题是: Debian 6.0 (Squeeze) 中默认启用了哪些缓冲区溢出/堆栈粉碎防御(如果有)?

Ubuntu 有一个方便的汇总表,显示了每个服务器版本发行版的主要安全特性,但我还没有找到与 Debian 类似的东西。Ubuntu 提到:

  • 堆栈保护器(gcc 的 -fstack-protector)
  • 堆保护器(GNU C 库堆保护器)
  • Pointer Obfuscation(一些存储在glibc中的指针被混淆了)
  • 地址空间布局随机化 (ASLR)(堆栈 ASLR;Libs/mmap ASLR;Exec ASLR;brk ASLR;VDSO ASLR)
  • 几个守护进程构建为位置独立可执行文件 (PIE)
  • 使用 Fortify Source "-D_FORTIFY_SOURCE=2" 构建的一些守护进程 (?)

Debian 6.0 在多大程度上使用了类似的技术(默认情况下)?

security debian debian-squeeze

11
推荐指数
1
解决办法
1191
查看次数

进程终止后如何自动重启?

我有一个 golang 程序,我想在它在 Debian Squeeze 框上终止后重新启动。事情是在 Apache 2 mod_proxy 设置后面提供 HTTP。我不希望这个过程失败,但我想有一些保险。

在 Ubuntu 上,我会使用 upstart 来保持进程的活跃。据我所知,Debian 不喜欢 Upstart,因为它是 init 的替代品。

有没有一种替代方法可以在一个或多个进程终止后重新启动它们,该进程在 Squeeze 上工作并与 init 一起玩得很好?

debian init.d debian-squeeze

11
推荐指数
2
解决办法
2万
查看次数

许多服务器的系统更新

我们有很多服务器,但仍想全部更新。实际的方法是任何系统管理员从一个服务器到另一个服务器并制作一个aptitude update && aptitude upgrade- 这仍然不是很酷。

我现在正在寻找一个更好、更智能的解决方案。人偶可以做这个工作吗?你怎么做呢?

remote-access debian update puppet

11
推荐指数
3
解决办法
3792
查看次数

Debian SSH - 调整终端大小未向 bash 注册

由于磁盘故障,我们最近重新安装了我们的服务器,现在我们在调整终端大小时遇到​​了问题。我们安装了 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 bash term

11
推荐指数
1
解决办法
4216
查看次数

当有人以 root 身份登录我的服务器时该怎么办

我有一台运行 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 文件,只看到了我的公钥

接下来是什么?

我怎么知道其他人在我的机器上做了什么?

security linux debian ssh ssh-keys

11
推荐指数
2
解决办法
835
查看次数

Puppet 代理证书验证失败

我设置了一个 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)

ssl debian puppet puppetmaster puppet-agent

11
推荐指数
2
解决办法
4万
查看次数

Linux + SSD 上交换分区的背景丢弃

问题

我想在 Linux 上的 SSD 磁盘内的交换分区上启用后台TRIM 操作。根据几篇文章,例如这篇文章,内核会检测此配置并自动执行丢弃操作,但在我的测试中,尽管使用“丢弃”挂载选项来强制执行此行为,但它似乎不起作用。

设想

  • 运行 Linux 3.2.0 的 Debian Wheezy
  • SSD 磁盘:1 x 120GB OCZ Vertex 3 MI
  • 2GB 交换“普通”分区,无其他层(LVM、RAID 等)

背景

这些是我用来检查后台 TRIM 是否在交换分区上工作的步骤:

  1. 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)
  2. 交换填充:挂载分区,清理所有 VM 缓存并配置 Linux 以积极交换,将 vm.swappiness 设置为 100。然后,运行一个脚本来分配所有可用内存并强制内核开始交换:

    # swapon [--discard] /dev/sda2
    # …
    Run Code Online (Sandbox Code Playgroud)

linux debian ssd swap trim

11
推荐指数
1
解决办法
3676
查看次数