AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-210752

port5432's questions

Martin Hope
port5432
Asked: 2023-03-18 05:28:45 +0800 CST

为什么 ssh 不能在 shell 中运行 rbenv?

  • 5

我正在尝试在远程服务器上运行 bash 脚本以通过 rbenv 安装 ruby​​。

#!/bin/bash
# ssh [email protected] 'bash -s' < configure.sh

echo "ruby 3.2.1"
rbenv install 3.2.1 --verbose
rbenv global 3.2.1

在远程服务器上rbenv已经为用户安装了deploy。如果我登录到该服务器,它运行正常。

❯ ssh [email protected]
deploy@ubuntu-focal:~$ rbenv
rbenv 1.2.0-59-g0704e65
Usage: rbenv <command> [<args>...]

但是如果我们尝试通过 ssh 运行命令,它就找不到了。

❯ ssh [email protected] "rbenv"
bash: rbenv: command not found

脚本也有同样的问题。

❯ ssh [email protected] 'bash -s' < configure.sh
ruby 3.2.1
bash: line 5: rbenv: command not found
bash: line 6: rbenv: command not found
bash: line 7: ruby: command not found
bash: line 9: gem: command not found
bash: line 10: gem: command not found
ssh
  • 1 个回答
  • 25 Views
Martin Hope
port5432
Asked: 2020-01-02 13:15:57 +0800 CST

docker-compose 对外访问端口

  • 1

我确定这个问题之前已经回答过,但我在任何地方都找不到简单的解决方案。我有多个docker-compose项目在单个主机上运行,​​具有唯一的主机端口映射。

我想从服务器外部访问 Flask API,但无法弄清楚如何做到这一点。运行时似乎有一个选项docker-compose run -p,但我认为这docker-compose up -d是运行 compose 的首选且稳健的方式。

我尝试更改network_mode: "bridge"为network_mode: "host",但这没有帮助。

假设主机的 IP 是 123.23.23.111,我想api通过类似的东西从外部访问服务http://123.23.23.111:5004,以及通过花监视器访问服务http://123.23.23.111:5559。

它都在专用网络上运行,我希望专用网络上的另一台服务器访问 API,但不需要互联网访问。https 将在稍后添加。

version: '3.7'
services:
  api:
    build:
      context: ./
      dockerfile: ./api/Dockerfile
    restart: always
    ports:
     - "5004:5000"
    network_mode: "host"
    depends_on:
      - redis
  worker:
    user: nobody
    build:
      context: ./
      dockerfile: ./worker/Dockerfile
    depends_on:
      - redis
  monitor:
    build:
      context: ./
      dockerfile: ./monitor/Dockerfile
    ports:
     - "5559:5555"
    network_mode: "host"
    entrypoint: flower
    command: --port=5555 --broker=redis://redis:6379/0
    depends_on:
      - redis
  redis:
    image: redis

Dockerfile 在api/Dockerfile

FROM python:3.6-alpine

ENV CELERY_BROKER_URL redis://redis:6379/0
ENV CELERY_RESULT_BACKEND redis://redis:6379/0

ENV HOST 0.0.0.0
ENV DEBUG true

COPY ./api/requirements.txt /api/requirements.txt
COPY .env /api
WORKDIR /api

# install requirements
RUN pip install -r requirements.txt

# expose the app port
EXPOSE 5001

RUN pip install gunicorn

COPY ./api/app.py /api/app.py
COPY ./api/worker.py /api/worker.py

# run the app server
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "3", "app:app"]

也很有趣:

sudo docker network ls
NETWORK ID          NAME                          DRIVER              SCOPE
eb03130b85ea        bridge                        bridge              local
15f8a2e5cd21        host                          host                local
d80f015461c3        myapp_default                 bridge              local
0dd1b3ace731        none                          null                local
docker
  • 1 个回答
  • 1988 Views
Martin Hope
port5432
Asked: 2019-12-01 23:55:40 +0800 CST

恢复 Digital Ocean 管理的 Postgres 数据库

  • 1

我们最近将我们的数据库集群从自托管迁移到 Digital Ocean Managed Postgres。我们想将整个数据库回滚到最近的时间点。

备份最多可使用一周

根据文档,我们不能直接从备份中恢复数据库:

当您从备份恢复时,我们会创建集群主节点的新副本。您不能直接还原到主节点本身,因为这会为数据库创建替代时间线,从而在托管服务中引入不必要的复杂性。通过恢复到新的主节点,可以保留单个线性时间线历史。

当新集群恢复时,它是一个并行集群(见下图),似乎没有任何办法让它假设原始集群的连接参数。

我们可以看到的唯一方法是从新的并行集群中进行完全导出,然后删除原始数据库并从命令行导入。

这里还有其他选择吗?

在此处输入图像描述

在此处输入图像描述

postgresql
  • 2 个回答
  • 530 Views
Martin Hope
port5432
Asked: 2019-10-15 23:03:09 +0800 CST

如何在 Ubuntu 上修复损坏的软件包

  • 1

我有一台 Ubuntu 18.10 服务器,最近尝试更新git. 我不断收到许多软件包未正确安装的错误。

Errors were encountered while processing:
 libpaper1:amd64
 libpaper-utils
 unattended-upgrades
 libgs9:amd64
 ghostscript

然后我跑了dpkg --configure -a,看到了同样的错误。我要小心,不要给我的系统灌水,但我该如何解决这些错误?

~ $ sudo apt list --upgradable
Listing... Done
~ $ sudo apt-get check
Reading package lists... Done
Building dependency tree
Reading state information... Done
~ $ sudo apt-get check
Reading package lists... Done
Building dependency tree
Reading state information... Done
~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
5 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up libpaper1:amd64 (1.1.24+nmu5ubuntu1) ...
dpkg: error processing package libpaper1:amd64 (--configure):
 installed libpaper1:amd64 package post-installation script subprocess returned error exit status 10
dpkg: dependency problems prevent configuration of libpaper-utils:
 libpaper-utils depends on libpaper1; however:
  Package libpaper1:amd64 is not configured yet.

dpkg: error processing package libpaper-utils (--configure):
 dependency problems - leaving unconfigured
Setting up unattended-upgrades (1.5ubuntu3.18.10.4) ...
dpkg: error processing package unattended-upgrades (--configure):
 installed unattended-upgrades package post-installation script subprocess returned error exit status 10
dpkg: dependency problems prevent configuration of libgs9:amd64:
 libgs9:amd64 depends on libpaper1; however:
  Package libpaper1:amd64 is not configured yet.

dpkg: error processing package libgs9:amd64 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of ghostscript:
 ghostscript depends on libgs9 (= 9.26~dfsg+0-0ubuntu0.18.10.9); however:
  Package libgs9:amd64 is not configured yet.

dpkg: error processing package ghostscript (--configure):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.28-0ubuntu1) ...
Errors were encountered while processing:
 libpaper1:amd64
 libpaper-utils
 unattended-upgrades
 libgs9:amd64
 ghostscript
E: Sub-process /usr/bin/dpkg returned an error code (1)

编辑

回应@Stefan Skoglund 的问题:

~ $ sudo apt-cache policy libpaper1
libpaper1:
  Installed: 1.1.24+nmu5ubuntu1
  Candidate: 1.1.24+nmu5ubuntu1
  Version table:
 *** 1.1.24+nmu5ubuntu1 500
        500 http://mirror.hetzner.de/ubuntu/packages cosmic/main amd64 Packages
        500 http://de.archive.ubuntu.com/ubuntu cosmic/main amd64 Packages
        100 /var/lib/dpkg/status

~ $ sudo dpkg-reconfigure -plow libpaper1
/usr/sbin/dpkg-reconfigure: libpaper1 is broken or not fully installed

编辑 2

我不顾一切,闭上眼睛,十指交叉,试了试:

sudo apt-get --purge remove libpaper1:amd64 libpaper-utils unattended-upgrades libgs9:amd64 ghostscript
sudo apt-get clean
sudo apt-get update && sudo apt-get upgrade
sudo apt autoremove

它神奇地起作用了。

赏金仍然可供可以解释此处发生的事情以及最佳实践/故障排除提示的人使用。

linux
  • 3 个回答
  • 11541 Views
Martin Hope
port5432
Asked: 2019-04-11 04:21:38 +0800 CST

Web 服务器的标准端口

  • 1

我正在将 Hetzner 用于只需要 80/443 和 22 可供外界访问的服务器。当我使用 Hetzner 防火墙模板时,它还添加了:

  • 协议 icmp,我认为是用于 ping
  • 端口 32768-65535 以 'ack' 的 tcp 标志打开

AWS 似乎关闭了一切,包括 ping。

  • 是否有任何理由打开端口 32768-65535,“ack”是什么意思?
  • 应该禁止协议 icmp 吗?

Nginx 服务器正在运行 https 并且 80 被重定向到 443。最好的做法是让 80 打开并重定向到 443,以防流量进入 80,还是应该关闭 80?

端口截图

firewall
  • 1 个回答
  • 2660 Views
Martin Hope
port5432
Asked: 2017-06-14 22:19:46 +0800 CST

如何识别与 IPv6 的慢速连接

  • 2

我是 Hetzner的客户,在新服务器上使用他们的标准 Ubuntu 16 LTS 映像时,我曾两次遇到同样的问题。当我尝试下载软件包时,速度非常慢,并且通常会在一个软件包上等待 10 分钟。

我通过强制 IPv4 “解决”了这个问题,但我不明白问题出在哪里。到目前为止,Hetzner 的支持还未能解决此问题。

echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

这是我自己的服务器上的问题,还是 Hetzner 网络基础设施中的某个地方的问题?

对 Hetzner 镜像的请求是可以的,但外部服务器需要很长时间才能完成,例如:它挂在对 ubuntu.com 的请求上

Get:14 http://apt.postgresql.org/pub/repos/apt xenial-pgdg/main amd64 Packages [58.8 kB]Get:15 http://apt.postgresql.org/pub/repos/apt xenial-pgdg/main i386 Packages [58.6 kB]0% [Connecting to security.ubuntu.com (2001:67c:1560:8001::14)]

ipv6
  • 2 个回答
  • 977 Views
Martin Hope
port5432
Asked: 2016-08-10 08:39:53 +0800 CST

定位 docker 容器

  • 0

我一直在玩各种docker和docker-machine教程。这是码头机器设置

$ docker-machine ls
NAME          ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
aws-sandbox   *        amazonec2    Running   tcp://52.16.157.182:2376            v1.12.0
dev           -        virtualbox   Running   tcp://192.168.99.100:2376           v1.12.0

我将docker-machine理解为可以运行 1 个或多个 docker 容器的主机。就我而言,我的笔记本电脑上运行着 docker-machine,而 EC2 上运行着另一个。

同时,我已通过以下命令将 EC2 实例设置为默认值

eval $(docker-machine env aws-sandbox)

这似乎奏效了,因为aws-sandbox被标记为ACTIVE

现在我尝试将 docker 容器加载到 docker-machine 中,但我不确定这是否有效。

$ docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS                          PORTS                    NAMES
fd34916854bf        orchestratingdocker_web       "env"                    About an hour ago   Restarting (0) 9 minutes ago    8000/tcp                 orchestratingdocker_web_run_2
f98b49ad026a        orchestratingdocker_web       "/usr/local/bin/pytho"   About an hour ago   Restarting (0) 23 minutes ago   8000/tcp                 orchestratingdocker_web_run_1
4d2322aa402e        orchestratingdocker_nginx     "/usr/sbin/nginx"        About an hour ago   Up About an hour                0.0.0.0:80->80/tcp       orchestratingdocker_nginx_1
1b4386bcccf2        orchestratingdocker_web       "/usr/local/bin/gunic"   About an hour ago   Up About an hour                8000/tcp                 orchestratingdocker_web_1
9190ffd622ad        postgres:latest               "/docker-entrypoint.s"   About an hour ago   Up About an hour                0.0.0.0:5432->5432/tcp   orchestratingdocker_postgres_1
380d19e5c239        kitematic/hello-world-nginx   "sh /start.sh"           About an hour ago   Up About an hour                0.0.0.0:8000->80/tcp     webserver

我似乎无法使用以下任何一种连接到这些容器中的任何一个:

  • localhost:8000或者80
  • 52.16.157.182:8000或者80
  • 192.168.99.100:8000或者80

Docker 容器是否像我假设的那样位于 docker-machine 内?如果是这样,我如何列出在哪台机器上运行的内容以及为什么我不能访问正在运行的 Web 服务器?

docker docker-machine
  • 1 个回答
  • 170 Views
Martin Hope
port5432
Asked: 2016-02-23 07:58:35 +0800 CST

了解顶部和调音

  • 1

我在我们的服务器上允许 Postgres 30GB 的 RAM。在运行密集任务时,我认为它正在交换。

据我了解:

  • VIRT - 虚拟内存(即:交换到磁盘)
  • RES - 完整的内存使用情况
  • SHR - 共享内存 - 我不清楚这是什么

见附件

更新的顶部输出

我认为这是在说:

  • Postgres 的完整内存使用量约为 60GB,其中 30GB 被交换
  • Ruby 的完整内存使用量 ~40GB

如果是这种情况,给 Postgres 再提供 30 或 40GB RAM 似乎是个好主意吗?

参考

http://mugurel.sumanariu.ro/linux/the-difference-among-virt-res-and-shr-in-top-output/

unix
  • 1 个回答
  • 73 Views
Martin Hope
port5432
Asked: 2016-02-13 04:07:38 +0800 CST

码头机器内存分配

  • 5

我们有一个相当复杂的 Rails 应用程序,即将部署到单个物理主机上。主机有 8 个内核和 128GB 内存。

该应用程序是 dockerised,具有 4 种类型的容器

  • 铁路公司 网络服务器
  • Postgres 数据库
  • Redis 数据库
  • 工作容器(Resque)

预计 Rails 和 Worker 容器将通过在 docker-machine 中引入更多容器来扩展。

在开发环境中,内存分配给整个 docker-machine:

docker-machine create -d virtualbox --virtualbox-memory 8192 default

是否可以控制单个容器的内存限制?

例如,为 Postgres 分配 16GB,但将 Rails 容器限制为 4GB。应该为运行 docker-machine 的服务器主机分配什么样的最小内存,这甚至可能吗?

编辑

相关问题:

如何处理 Docker 内存管理?

Docker + Apache,内存使用如何工作?

编辑 2

这个答案https://serverfault.com/a/645888/210752表明容器将根据需要分配内存。这不是我在开发环境中的经验(默认情况下,docker-machine 分配了 2GB)。

memory
  • 1 个回答
  • 11038 Views
Martin Hope
port5432
Asked: 2015-10-08 23:59:10 +0800 CST

转移即将到期的域

  • 0

我们在一家小型注册公司注册了许多生产服务器域。它们都在月底到期。

我们想将它们迁移到 godaddy.com,但不确定我们是否应该先更新域,然后将它们转移到 godaddy,或者转移到 godaddy,在此过程中更新它们。

domain-name
  • 1 个回答
  • 46 Views
Martin Hope
port5432
Asked: 2014-07-25 23:55:24 +0800 CST

Squid 如何知道它的缓存是否经过验证

  • 3

在反向代理模式下,Squid 可以缓存来自网络中设备以前访问过的网站的内容。

如果远程站点上的内容以某种方式发生变化(可能是通过代码推送)会发生什么?Squid 如何知道它需要访问原始站点来获取资产的新版本,而不是缓存?

现在对于基于动态 javascript 的(单页)网站来说,这是否是一个更大的问题?

一个附带问题:“反向代理”与 Squid 的“加速器模式”本质上是一样的吗?

reverse-proxy
  • 1 个回答
  • 2136 Views
Martin Hope
port5432
Asked: 2014-02-26 03:15:02 +0800 CST

从 Exchange 迁移到 Google Apps for Business

  • 0

我正在考虑将客户端从他们的 MS Exchange 电子邮件服务器迁移到 Google Apps for Business 电子邮件。他们是一家拥有 5 个电子邮件帐户的小公司,但他们是非常重的电子邮件用户,每个邮件文件大小为 2-3GB,带有各种附件。

由于他们现有的电子邮件服务器是一项服务,因此我无法在其上安装任何软件。我认为唯一的选择是使用谷歌应用程序桌面迁移工具。

有没有人有将这种大小的邮件文件迁移到谷歌应用程序的经验(成功或其他)?如果网络中断需要多长时间以及会发生什么(即:您可以重新启动吗?)。附件有问题吗?

相关问题:

从 Exchange 2003 迁移到 Google Apps

从 Gmail 迁移到 Google Apps

如何从 Google Apps 邮件迁移

exchange
  • 1 个回答
  • 158 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve