小编For*_*ard的帖子

如何取消缓冲切割?

我只想从我的邮件日志文件中获取以“@xyz.nl”结尾的电子邮件地址。为了实现这一点,我这样做:

# tail -f /var/log/mail.log | grep --i --line-buffered "@xyz.nl" | cut -d '@' -f 1 | cut -d '<' -f 2
Run Code Online (Sandbox Code Playgroud)

带 grep 的 --line-buffered 是必要的,因为否则它会缓冲其输出,因为管道不被视为终端。Grep 将输出这样的行:

Aug 29 11:56:01 localhost postfix/smtp[4124]: 05491500123: to=<someone@xyz.nl>, relay=123.456.123.456[123.456.123.456]:25, delay=2, delays=0.4/0/0.4/1.2, dsn=2.0.0, status=sent (250 2.0.0 u7T9twxN074009 Message accepted for delivery)
Run Code Online (Sandbox Code Playgroud)

然后第一次切割:

Aug 29 11:56:01 localhost postfix/smtp[4124]: 05491500123: to=<someone
Run Code Online (Sandbox Code Playgroud)

第二次切割应生成:

someone
Run Code Online (Sandbox Code Playgroud)

然而,似乎 cut 也在缓冲。如果我用cat而不是tail -f启动命令,我会从日志文件中获得所有相关结果(以首选格式)。但我需要实时从日志文件中获取结果。

我尝试为此使用 unbuffer:

# tail -f /var/log/mail.log | grep --i --line-buffered "@xyz.nl" | unbuffer cut -d …
Run Code Online (Sandbox Code Playgroud)

pipe cut

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

MariaDB 接受任何密码

在 Debian 9.1 上运行 MariaDB 10.1.23-MariaDB-9+deb9u1。全新的操作系统安装,安装了 MariaDBapt-get install mariadb-server mariadb-client

显然 MariaDB 在安装时不会要求输入 root 密码,所以我将在事后设置它:

# mysql -uroot
> select user from mysql.user;
+------+
| user |
+------+
| root |
+------+
Run Code Online (Sandbox Code Playgroud)

好的,所以 root 存在。现在更改其密码:

> set password for 'root'@'localhost' = PASSWORD('P@ssw0rd');
> flush privileges;
> exit
Run Code Online (Sandbox Code Playgroud)

它起作用了吗?

# mysql -uroot -pblabla
MariaDB [(none)]>
Run Code Online (Sandbox Code Playgroud)

设置密码没问题,但为什么 MariaDB 接受任何随机密码,甚至是空密码?

此安装不接受 ALTER USER 语句。

password mariadb

7
推荐指数
1
解决办法
7137
查看次数

通过 ssh 设置 rsnapshot 的正确方法

我有两台 Debian 8 服务器:

  1. 服务器A:在家里,大量的存储空间
  2. 服务器 B:商业主机上的 vps,运行网络和邮件服务

两者都是宠物项目,而不是商业项目。

服务器 B 运行 rsnapshot 运行良好。服务器 A 和 B 可以使用证书以 SSH 方式相互连接,这也可以正常工作。他们不允许 root 直接通过 SSH 登录,但他们有可以 sudo su 成为 root 的普通用户帐户。对于非自动化 SSH 会话,我使用受密码保护的证书。

最近几天我一直在尝试在服务器 B 上设置 rsnapshot 以创建从服务器 B 到服务器 A 的备份,或者在服务器 A 上将备份从服务器 B 拉到服务器 A,根据 rsnapshot 文档,这似乎是正确的方法。

我的问题是很多文档都相对地提到了服务器,例如他们说“在您的服务器上执行 x”或“将 y 复制到 ~/somepath”。我很少找到明确列出哪个服务器具有哪些功能以及您需要将 y 复制到哪个用户的主目录的文档。

所以:

  • 需要备份的生产数据在服务器B上。
  • 备份需要保存到服务器 A。
  • 服务器 A 将运行 rsnapshot。

问题:

在 rsnapshot 配置中,我需要说哪个用户帐户将通过 SSH 在服务器 B 上登录?root(变得复杂或不安全)或专用的常规用户帐户,例如名为“backupmaker”的用户(Debian 有一个名为“backup”的系统用户,它符合条件,但我不想弄乱)。

我已经阅读了这两本书,并且我理解 Linux 的口头禅,更多方法可以很好,但我真的在寻找一些在生产环境中设置了这个的人的一些实践建议,最好是来自 /etc/rsnapshot.conf 和 / home//.ssh/authorized_keys(你真的使用 from="abcd",command="/home/remoteuser/cron/validate-rsync",并且'validate-rsync'脚本是强制性的还是可以是任何命令,例如/home/serverAuser/myrsnapscript.sh?)。

您是否使用 …

ssh rsnapshot

4
推荐指数
1
解决办法
6126
查看次数

标签 统计

cut ×1

mariadb ×1

password ×1

pipe ×1

rsnapshot ×1

ssh ×1