小编Ben*_*rel的帖子

如何在不将存档保存到磁盘的情况下下载存档并提取它?

我想下载并解压缩给定目录下的存档。到目前为止,这是我的做法:

wget http://downloads.mysql.com/source/dbt2-0.37.50.3.tar.gz
tar zxf dbt2-0.37.50.3.tar.gz
mv dbt2-0.37.50.3 dbt2
Run Code Online (Sandbox Code Playgroud)

我想即时下载和解压缩存档,而无需将其tar.gz写入磁盘。我认为通过管道输出wgettotar并给出tar目标是可能的,但实际上我不知道如何将这些部分放在一起。

shell tar pipe wget

93
推荐指数
3
解决办法
9万
查看次数

Systemd Restart=always 不兑现

注意:我在 Medium 上写了一篇文章,解释了如何创建服务,以及如何避免这个特定问题:Creating a Linux service with systemd

原问题:


我正在使用 systemd 来保持工作脚本始终工作:

[Unit]
Description=My worker
After=mysqld.service

[Service]
Type=simple
Restart=always
ExecStart=/path/to/script

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

虽然如果脚本在几分钟后正常退出,重启工作正常,但我注意到如果它在启动时反复执行失败,systemd将放弃尝试启动它:

Jun 14 11:10:31 localhost systemd[1]: test.service: Main process exited, code=exited, status=1/FAILURE
Jun 14 11:10:31 localhost systemd[1]: test.service: Unit entered failed state.
Jun 14 11:10:31 localhost systemd[1]: test.service: Failed with result 'exit-code'.
Jun 14 11:10:31 localhost systemd[1]: test.service: Service hold-off time over, scheduling restart.
Jun 14 11:10:31 localhost systemd[1]: test.service: Start request repeated too …
Run Code Online (Sandbox Code Playgroud)

systemd

89
推荐指数
3
解决办法
16万
查看次数

如何重命名 gnu 屏幕会话

我正在运行一个屏幕会话,我想更改它的名称。我知道在开始新的屏幕会话时,我可以使用“-S”选项为其命名。会话开始后如何更改该名称?

gnu-screen

66
推荐指数
3
解决办法
5万
查看次数

我可以在不重新启动的情况下重新启动 systemd 吗?

我正在尝试yum update在 RHEL 7.4之后重新启动服务。我可以使用 systemctl 重新启动每个服务,但是needs-restartingfromyum utils告诉我我也应该重新启动 systemd 本身:

# needs-restarting
1 : /usr/lib/systemd/systemd --system --deserialize 21
Run Code Online (Sandbox Code Playgroud)

我可以在systemd不重新启动服务器的情况下重新启动吗?如何重新启动?

我发现了一些关于 的提及systemctl daemon-reload,但这并没有使它从需要重新启动列表中消失。

rhel systemd

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

如何以平均每秒 5 次的速度运行命令?

我有一个命令行脚本,它执行 API 调用并用结果更新数据库。

我有 API 提供者每秒 5 个 API 调用的限制。该脚本的执行时间超过 0.2 秒。

  • 如果我按顺序运行命令,它的运行速度将不够快,而且我每秒只能进行 1 或 2 个 API 调用。
  • 如果我按顺序运行命令,但同时从多个终端运行,我可能会超过 5 次调用/秒的限制。

是否有办法编排线程,以便我的命令行脚本每秒执行 5 次?

例如,可以使用 5 或 10 个线程运行的东西,如果前一个线程在不到 200 毫秒前执行了脚本,则没有线程会执行该脚本。

command-line multithreading

21
推荐指数
3
解决办法
4147
查看次数

检查gz文件的有效性

如何检查 gz 文件的有效性,我没有文件的哈希值,我正在使用gzip -t但它没有返回任何输出。

gzip

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

从外部向屏幕会话发送输入

我的场景是这样的:

我有一个在远程位置运行的屏幕会话。此屏幕内是一个基于控制台的程序。在没有屏幕的情况下运行时,该程序在终端中启动并在其标准输入上接受命令。

我想要的是一种远程向屏幕发送命令的方法,以便控制台程序接收该命令。也许是这样的:

我的电脑 -> SSH 自动发送消息 -> 屏幕会话 -> 程序(收到运行命令)

因此,我可以从远程 PC 通过 SSH 命令将命令发送到将它们发送到程序的屏幕。程序接受它们并执行它们。

gnu-screen

18
推荐指数
1
解决办法
8598
查看次数

如何实时显示命令输出的行数?

我将其svn export用作我的应用程序的打包程序脚本的一部分,看起来这个命令与许多其他命令一样,没有任何类型的进度条。

目前我有两个选择:

  • 不加选项地使用它,并观察它打印数千行
  • 使用--quiet,并且在完成之前什么也看不到。

有没有办法至少实时显示命令输出的行数?如:

Exporting SVN directory ... 1234 files
Run Code Online (Sandbox Code Playgroud)

1234 实时看到这个数字增量?我可以想象将输出传递给一个可以做到这一点的命令,但是哪个呢?

shell pipe progress-information

18
推荐指数
3
解决办法
4029
查看次数

在现代 Linux 上使用 noatime 有意义吗?

从 2.6.30 版本(5 年前发布)开始,Linuxrelatime默认启用该选项。这意味着文件访问时间的更新非常罕见且谨慎。

但我仍然看到建议使用noatime的数据库或SSD盘。是否有任何理由更改默认配置并使用它?与 相比是否有任何可衡量的差异relatime

filesystems linux-kernel atime

16
推荐指数
1
解决办法
4072
查看次数

如何在 Ubuntu 上的非交互式 shell 上配置 MySQL APT 存储库?

我想在运行 Ubuntu 12 虚拟机的Travis CI上安装 MySQL 5.7 。

我愿意使用官方 MySQL APT 存储库

wget http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu12.04_all.deb
sudo dpkg --install mysql-apt-config_0.2.1-1ubuntu12.04_all.deb
Run Code Online (Sandbox Code Playgroud)

但问题是,安装此软件包会打开一个交互式菜单,询问以下问题:

Which Server version do you wish to receive?  
    - mysql-5.6  
    - mysql-5.7-dmr
Run Code Online (Sandbox Code Playgroud)

由于安装是自动脚本的一部分,我不在终端后面回答这个问题。我在文档中唯一能找到的是:

选择主要发布版本

默认情况下,您的 MySQL 服务器和其他必需组件的所有安装和升级都来自您在安装配置包期间选择的主要版本的发布系列(请参阅添加 MySQL APT 存储库)。但是,您可以随时通过重新配置已安装的配置包来切换到另一个受支持的主要版本系列。使用以下命令:

shell> sudo dpkg-reconfigure mysql-apt-config
Run Code Online (Sandbox Code Playgroud)

但同样,这会打开一个交互式菜单。

如何安装此 APT 存储库并将其配置为mysql-5.7-dmr在非交互式 shell 上使用?

dpkg mysql debconf

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