我想下载并解压缩给定目录下的存档。到目前为止,这是我的做法:
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
写入磁盘。我认为通过管道输出wget
totar
并给出tar
目标是可能的,但实际上我不知道如何将这些部分放在一起。
注意:我在 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) 我正在运行一个屏幕会话,我想更改它的名称。我知道在开始新的屏幕会话时,我可以使用“-S”选项为其命名。会话开始后如何更改该名称?
我正在尝试yum update
在 RHEL 7.4之后重新启动服务。我可以使用 systemctl 重新启动每个服务,但是needs-restarting
fromyum utils
告诉我我也应该重新启动 systemd 本身:
# needs-restarting
1 : /usr/lib/systemd/systemd --system --deserialize 21
Run Code Online (Sandbox Code Playgroud)
我可以在systemd
不重新启动服务器的情况下重新启动吗?如何重新启动?
我发现了一些关于 的提及systemctl daemon-reload
,但这并没有使它从需要重新启动列表中消失。
我有一个命令行脚本,它执行 API 调用并用结果更新数据库。
我有 API 提供者每秒 5 个 API 调用的限制。该脚本的执行时间超过 0.2 秒。
是否有办法编排线程,以便我的命令行脚本每秒执行 5 次?
例如,可以使用 5 或 10 个线程运行的东西,如果前一个线程在不到 200 毫秒前执行了脚本,则没有线程会执行该脚本。
我的场景是这样的:
我有一个在远程位置运行的屏幕会话。此屏幕内是一个基于控制台的程序。在没有屏幕的情况下运行时,该程序在终端中启动并在其标准输入上接受命令。
我想要的是一种远程向屏幕发送命令的方法,以便控制台程序接收该命令。也许是这样的:
我的电脑 -> SSH 自动发送消息 -> 屏幕会话 -> 程序(收到运行命令)
因此,我可以从远程 PC 通过 SSH 命令将命令发送到将它们发送到程序的屏幕。程序接受它们并执行它们。
我将其svn export
用作我的应用程序的打包程序脚本的一部分,看起来这个命令与许多其他命令一样,没有任何类型的进度条。
目前我有两个选择:
--quiet
,并且在完成之前什么也看不到。有没有办法至少实时显示命令输出的行数?如:
Exporting SVN directory ... 1234 files
Run Code Online (Sandbox Code Playgroud)
并1234
实时看到这个数字增量?我可以想象将输出传递给一个可以做到这一点的命令,但是哪个呢?
从 2.6.30 版本(5 年前发布)开始,Linuxrelatime
默认启用该选项。这意味着文件访问时间的更新非常罕见且谨慎。
但我仍然看到建议使用noatime
的数据库或SSD盘。是否有任何理由更改默认配置并使用它?与 相比是否有任何可衡量的差异relatime
?
我想在运行 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 上使用?
gnu-screen ×2
pipe ×2
shell ×2
systemd ×2
atime ×1
command-line ×1
debconf ×1
dpkg ×1
filesystems ×1
gzip ×1
linux-kernel ×1
mysql ×1
rhel ×1
tar ×1
wget ×1