有一个名为的 Git 子命令ls-remote
,它允许列出所有分支和每个分支的叶节点/尖端的提交哈希。
如何在不在本地克隆 repo的情况下查询这些提交的时间戳或提交的其他相关信息?(或者,如果不克隆回购就没有办法做到这一点)
有一个名为的 Git 子命令ls-remote
,它允许列出所有分支和每个分支的叶节点/尖端的提交哈希。
如何在不在本地克隆 repo的情况下查询这些提交的时间戳或提交的其他相关信息?(或者,如果不克隆回购就没有办法做到这一点)
我正在尝试实现一个作业编排器,其代理/工作程序通过 SSH 会话/shell 连接到机器。我想将(可能是二进制)文件传输到这些代理(任何类型的任务都可能需要)。
显然,如果可以以任何方式配置端口,则nc
可以执行一些指令。但是,我正在尝试获得适用于最严格设置的东西。
在这种设置中(手动)工作时,我经常做的事情是将文件序列化为 Base64 或类似文件,然后将数据“粘贴”到控制台会话中,例如:
echo -n "BINARY_BASE64_DATA" | base64 --decode > file_destination.file
我想为我上面描述的代理/工作人员实现类似的东西。
问题的关键在于使用什么工具来获得最大的兼容性表面。大多数 Linux 机器(甚至是最基本的 Docker/Vagrant 映像)似乎都已base64
安装。然而,FreeBSD 似乎没有预装这个命令。我知道我可以使用或 Ports 安装它pkg
,但我想尽可能多地使用开箱即用的东西。
我寻找了更多 POSIX/Unix-y 的东西,发现了这个:https ://en.wikipedia.org/wiki/List_of_Unix_commands它说:
这是 IEEE Std 1003.1-2008 指定的 Unix 命令列表,它是单一 UNIX 规范 (SUS) 的一部分。这些命令可以在 Unix 操作系统和大多数类 Unix 操作系统上找到。
并且有一个长长的命令表,其中相关的命令uuencode
都uudecode
被列为“强制”。
在 FreeBSD 上,我可以看到它是开箱即用的。
在我的 Ubuntu 桌面上,它也存在,虽然我不知道它是开箱即用的,还是作为我安装的其他东西的依赖项安装的。但是,在 Ubuntu Vagrant 框(generic/ubuntu2004
特别是 )中,调用uuencode
会显示以下消息:
$ uuencode
Command 'uuencode' not found, but can be installed with:
apt install sharutils
Please ask your administrator.
在我基于 Ubuntu 14.04 的 Docker 映像上,我得到:
# uuencode
bash: uuencode: command not found
uuencode
/uudecode
开箱即用?这是否使其不符合 POSIX/Unix 标准?base64
安装二进制文件以与协调器一起使用?我在 CentOS 服务器上运行。我首先为 Ubuntu 虚拟机创建了一台 KVM 机器,但出现了问题(我无法连接到 VNC 会话),所以我放弃了它。第一个命令virt-viewer
缺少警告,所以我安装了它。然后,我尝试virt-install
再次启动命令,面对:
ERROR Guest name 'vm1' is already in use.
我环顾四周,似乎需要取消定义/销毁它,但出现如下错误:
$ virsh undefine vm1
error: failed to get domain 'vm1'
error: Domain not found: no domain with matching name 'vm1'
$ virsh destroy vm1
error: failed to get domain 'vm1'
error: Domain not found: no domain with matching name 'vm1'
$ virsh list --all
Id Name State
----------------------------------------------------
$
关于如何找到 VM 并将其删除以便我可以再次(正确地)创建它的任何想法?