小编gue*_*tli的帖子

用一个 systemd 服务文件启动 N 个进程

我找到了这个 systemd 服务文件来启动 autossh 以保持 ssh 隧道:https : //gist.github.com/thomasfr/9707568

[Unit]
Description=Keeps a tunnel to 'remote.example.com' open
After=network.target

[Service]
User=autossh
# -p [PORT]
# -l [user]
# -M 0 --> no monitoring
# -N Just open the connection and do nothing (not interactive)
# LOCALPORT:IP_ON_EXAMPLE_COM:PORT_ON_EXAMPLE_COM
ExecStart=/usr/bin/autossh -M 0 -N -q -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -p 22 -l autossh remote.example.com -L 7474:127.0.0.1:7474 -i /home/autossh/.ssh/id_rsa

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

有没有办法将 systemd 配置为在一个服务中启动多个隧道。

我不想创建N个系统服务文件,因为我想避免复制+粘贴。

除了“remote.example.com”将替换为其他主机名之外,所有服务文件都将相同。

1.5年后...

我大约在 1.5 年前问过这个问题。

我的想法变了。是的,这很好,你可以用 systemd …

daemon systemd

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

bzip2 太慢了。多核可用

我正在运行这个命令:

pg_dumpall | bzip2 > cluster-$(date --iso).sql.bz2
Run Code Online (Sandbox Code Playgroud)

这需要太长时间。我用top. bzip2 进程占用一个内核的大约 95% 和 postgres 的 5%。该wa条目是低的。这意味着磁盘不是瓶颈。

我可以做些什么来提高性能?

也许让 bzip2 使用更多的内核。服务器有 16 个内核。

或者使用 bzip2 的替代品?

我可以做些什么来提高性能?

postgresql performance gzip

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

禁用所有服务,ssh 除外

如何在现代(基于 systemd 的)Linux 发行版上禁用除 ssh 之外的所有服务?

我需要实施维护模式

所有这些服务都需要关闭:

  • 邮局
  • 后缀
  • 阿帕奇
  • 杯子
  • 定时任务
  • 鸽舍

但是 ssh 不能关闭,因为这会在维护模式下用于执行任务。

当然,我可以编写一个 shell 脚本,循环遍历我想禁用的服务列表。但这感觉就像我重新发明了一些已经存在但我现在还不知道的东西。

maintenance linux service systemd

32
推荐指数
2
解决办法
4604
查看次数

loginctl enable-linger/disable-linger ...但是读取linger-status?

我知道如何启用/禁用loginctl.

但是直到现在我还没有找到查询用户状态的方法。

我想知道:是否为用户启用了挥之不去的功能foo

我怎样才能访问这些信息?

systemd

26
推荐指数
3
解决办法
1万
查看次数

Systemd:立即重新启动实例化服务的所有实例

我使用了 systemd 的一个很好的特性:实例化服务。

有没有一种简单的方法可以通过一次调用重新加载所有实例化的服务?

示例:我不想像这样运行:

systemctl restart autossh@foo
systemctl restart autossh@bar
systemctl restart autossh@blu
Run Code Online (Sandbox Code Playgroud)

我试过了,但这不起作用

systemctl restart autossh@*
Run Code Online (Sandbox Code Playgroud)

相关:用一个 systemd 服务文件启动 N 个进程

更新

一开始我对实例化服务很着迷,但后来我意识到运行像 Ansible 这样的配置管理工具更有意义。我学到了:保持工具简单。许多工具开始实现条件检查(if .. else ...)和循环。例如网络服务器或邮件服务器配置。但这应该在不同的(上)级别解决:配置管理。请参阅:https : //github.com/guettli/programming-guidelines#dont-use-systemd-instantiated-units

systemd

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

未更改的大目录的更快 rsync

我们使用 rsync 来备份服务器。

不幸的是,某些服务器的网络速度很慢。

rsync 最多需要五分钟才能检测到大型目录中没有任何变化。这些巨大的目录树包含很多小文件(大约 80k 个文件)。

我猜 rsync 客户端会为每个 80k 文件发送数据。

由于网络很慢,我想避免发送有关每个文件的 80k 次信息。

有没有办法告诉 rsync 对子目录树进行哈希和?

这样 rsync 客户端将只为巨大的目录树发送几个字节。

更新

到目前为止,我的策略是使用rsync. 但是如果不同的工具更适合这里,我可以切换。两者(服务器和客户端)都在我的控制之下。

更新2

一棵目录树中有 80k 个文件。每个单个目录不超过 2k 个文件或子目录

更新3

有关网络缓慢的详细信息:

time ssh einswp 'cd attachments/200 && ls -lLR' >/tmp/list
real    0m2.645s
Run Code Online (Sandbox Code Playgroud)

tmp/list 文件大小:2MByte

time scp einswp:/tmp/list tmp/
real    0m2.821s
Run Code Online (Sandbox Code Playgroud)

结论:scp 速度一样(不出意外)

time scp einswp:tmp/100MB tmp/
real    1m24.049s
Run Code Online (Sandbox Code Playgroud)

速度:1.2MB/s

synchronization rsync

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

SaltStack:调用 sls 文件的单个状态

我无法调用 sls 文件的单个状态。

整个 sls 文件有效

这有效:

salt-ssh w123 state.sls monitoring
Run Code Online (Sandbox Code Playgroud)

这有效:

salt-ssh w123 state.show_sls monitoring
Run Code Online (Sandbox Code Playgroud)

上述输出中的一项:

monitoring_packages:
    ----------
    __env__:
        base
    __sls__:
        monitoring.packages
    pkg:
        |_
          ----------
          pkgs:
              - python-psutil
        - installed
        |_
          ----------
          order:
              10000
Run Code Online (Sandbox Code Playgroud)

我试过的

现在我只想调用monitoring_packages,而不是整个 sls 文件:

失败:

salt:/srv # salt-ssh w123 state.sls_id monitoring_packages  monitoring
w123:
    Data failed to compile:
----------
    No matching sls found for 'monitoring' in env 'base'
Run Code Online (Sandbox Code Playgroud)

失败:

salt:/srv # salt-ssh w123 state.single monitoring.monitoring_packages
w123:
    TypeError encountered executing state.single: single() takes at least …
Run Code Online (Sandbox Code Playgroud)

saltstack

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

vsftp:为什么 allow_writeable_chroot=YES 是个坏主意?

有数千篇关于 vsftp 的博客文章和 allow_writeable_chroot=YES

常见的错误信息:

修复 500 OOPS:vsftpd:拒绝在 chroot () 内使用可写根运行

我在我的服务器上解决了这个问题。

但还有一个问题:

为什么建议使用allow_writeable_chroot=NO

到目前为止,我只发现了诸如“出于安全原因”之类的模糊论点。

这些“安全原因”是什么?

security chroot vsftpd

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

使用“rm”删除 imap 服务器上的邮件是否安全?

我使用 dovecot IMAP 服务器并想删除不需要的大邮件:

cd /var/spool/foouser; du -a | sort -rn > /var/tmp/du-mail-foouser.log
Run Code Online (Sandbox Code Playgroud)

现在我在顶部看到大邮件,看了之后我想删除它们。

直接打电话安全吗

"rm ./foofolder/1318412893.M857530P4656.hz1,W=14463815,S=14268320:2,S"?

imap dovecot maildir

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

foo.service 延迟时间结束,调度重启 --> 在哪里可以更改延迟时间

我在日志中看到此消息:

systemd[1]: foo.service holdoff time over, scheduling restart.
Run Code Online (Sandbox Code Playgroud)

我在这里找不到术语“延迟时间”:

https://www.freedesktop.org/software/systemd/man/systemd.service.html

在哪里可以更改释抑时间?

systemd

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