我需要能够在本地运行一个脚本,该脚本将连接到各种服务器并在它们上运行命令。实现这一目标的最佳方法是什么?
我是 Linux 新手,我可能会问一个相当基本的问题。如何在 Linux 上运行连续程序?
基本上,我有一个程序可以不断检查网站上的内容。这个程序将执行几天。我在希望运行此程序的计算机上没有管理权限,而且我也没有对这台计算机的独占访问权限,这意味着其他用户可以物理登录。此外,除非发生一些不可告人的灾难,否则计算机将在我的程序的整个持续时间内运行。
我知道我可以通过 SSH 进入机器并运行程序。然而,这是不可取的,因为我需要第二台机器来做这件事(这违背了我正在做的事情),更不用说超时问题了。
有没有一种方法可以让我在计算机上远程运行我的程序,而无需在启动后建立某种连接?
我最近在家里的内部可访问系统上设置了 FreeIPA。我想从 LAN 外部的网络管理此 Web UI,但同时,我不想将此 Web UI 暴露给公共 Internet。有没有办法通过 SSH 隧道访问它?
注意:我熟悉使用ssh&它的-L开关设置隧道,如下所示:
$ ssh -L 12345:ipa.local.net:80 mysshserver
Run Code Online (Sandbox Code Playgroud)
然而,这种方法在这种情况下不起作用,因为除了能够使用端口 443 和 80 访问 Web UI 之外,访问 FreeIPA 还要求您使用服务器的实际主机名。
有没有另一种方法可以实现这一目标ssh -L?
显然 Fedora 25,即使处于 alpha 状态(时间不长,beta 即将推出)在默认启用 Wayland 的情况下也做得非常好。我想知道是否有任何图形/easy_to_setup 解决方案用于远程桌面管理(在另一台 Linux 机器下)可以与 Wayland 一起使用?还是太早了?任何帮助表示赞赏,谢谢
我目前的笔记本电脑正在崩溃,特别是屏幕铰链。一旦(或理想情况下)它们坏了,我想将机器作为存储设备运行。我非常喜欢使用 GUI 而不是 CLI。
在将其变成盒子之前安装的发行版/有用工具有什么建议吗?关于在没有屏幕的情况下运行笔记本电脑的任何警示故事?
到目前为止,我想象安装 Ubuntu(不是服务器)并运行 Remmina 以通过 VNC/etc 进行远程处理。
我有一个无头 Fedora 15(没有 GUI)盒子。具有以下分区结构:
$ df -T -h
Filesystem Type Size Used Avail Use% Mounted on
rootfs rootfs 49G 2.8G 46G 6% /
udev devtmpfs 1.7G 4.0K 1.7G 1% /dev
tmpfs tmpfs 1.7G 0 1.7G 0% /dev/shm
tmpfs tmpfs 1.7G 604K 1.7G 1% /run
/dev/sda1 ext4 49G 2.8G 46G 6% /
tmpfs tmpfs 1.7G 0 1.7G 0% /sys/fs/cgroup
tmpfs tmpfs 1.7G 0 1.7G 0% /media
/dev/sda5 ext4 388G 35G 334G 10% /var
/dev/sda2 ext4 28G 1.7G 25G 7% /home
Run Code Online (Sandbox Code Playgroud)
我厌倦了 …
我正在尝试在循环中的多个服务器中执行操作,但我想在第一个服务器中启动我的操作并直接转到第二个,而无需等待第一个完成。
HOSTS="host1 host2"
For hostname in ${HOST} ;
do ssh -tt ${USERNAME}@${hostname} << EOF
actions
exit
EOF
Done
Run Code Online (Sandbox Code Playgroud)
任何人都有想法在 linux sh bash 中做到这一点?
先感谢您。
我的一位客户在他的 PC 上运行 Linux VM,我需要远程访问它。这是一台 PC 计算机,而不是服务器,因此它大部分时间都连接到 Internet。它也有防火墙。
我有时需要管理这个 Linux VM 来安装新软件或访问它的数据库。我获得远程访问的最佳方式是什么?
请注意,这台 PC 处于正常的家庭互联网连接上。它的 IP 地址不是服务器 IP 地址,它隐藏在 ISP 提供商后面。我在办公室上班。如果需要,我有一个 Linux PC 服务器,它有一个固定的 IP 地址供我使用。
这就是我想要做的。
我想检查 100 多个主机并查看该主机上是否存在文件。如果文件确实存在,那么我想打印主机名和命令的输出。
在这个示例中,假设我有三个主机: host1.example.org host2.example.org host3.example.org 。该文件/etc/foobar存在于 host2.example.org 上,但不存在于 host1.example.org 或 host3.example.org 上。
ls -l /etc/foobar在列表中的每个主机上运行。HOSTLIST="host1.example.org host2.example.org host3.example.org"
for HOST in $HOSTLIST
do
echo "### $HOST"
ssh $HOST "ls -ld /etc/foobar"
done
Run Code Online (Sandbox Code Playgroud)
理想的输出是:
### host2.example.org
drwx------ 3 root root 4096 Apr 10 16:57 /etc/foobar
Run Code Online (Sandbox Code Playgroud)
但实际输出是:
### host1.example.org
### host2.example.org
drwx------ 3 root root 4096 Apr 10 16:57 /etc/foobar
### host3.example.org
Run Code Online (Sandbox Code Playgroud)
我不想打印 host1.example.org 或 host3.example.org 的行。
我正在试验大括号来包含由echoand吐出的输出ssh,但我无法弄清楚做我想做的魔术语法。我确信我过去在没有控制字符的情况下这样做过,
### …Run Code Online (Sandbox Code Playgroud) 我的办公室有一个默认网关,后面是一个本地网络,本地网络为包括我在内的所有计算机分配了 IP 地址。
我在安装了 Ubuntu 的办公室 PC 中担任管理员,并且在周末通过 SSH 访问计算机是必不可少的。
在办公室,我没有公共 IP,但我总是从 DHCP 获得相同的本地 IP。尽管我无法在主防火墙中设置端口转发,但我可以自由地在我的电脑中设置任何我喜欢的软件。
我的家用电脑也有一个公共 IP,它也运行 Linux。请注意,我无法安装类似 Team Viewer 的软件。
我该如何解决我的问题?