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-515538

Blockchain Office's questions

Martin Hope
Blockchain Office
Asked: 2023-06-15 02:55:30 +0800 CST

使用方舟创建 zip 存档并使用存储方法?

  • 6

如何使用方舟图形界面创建一个zip压缩包,并使用“ Store ”而不是“ Deflate ”进行压缩?

更新

显然,关于压缩方法的版本之间存在显着差异。

@Marcus Müller的声明“来自新安装的 Ark 22.12.3 的屏幕截图”提示我在另一台机器上打开 Ark。

方舟 18.8.3

在此处输入图像描述 在此处输入图像描述

方舟 20.12.2

在此处输入图像描述 在此处输入图像描述

我现在还在Creating Archives and Adding Files上找到了这句话。

请注意,使用预选默认值以外的压缩方法可能会限制与文件归档程序的兼容性。例如,使用“Deflate”以外的压缩方法打开 zip 存档需要更新的存档软件。

zip
  • 1 个回答
  • 32 Views
Martin Hope
Blockchain Office
Asked: 2023-03-09 19:09:50 +0800 CST

在 Bash 脚本中使用“cp”命令并排除特定目录

  • 15

我需要在 shell 脚本中运行此命令以复制源 > 目标并排除文件夹。

没有 rsync、tar、find、mv 等。

正是这个命令:

cp -var test/!(test2) testbkp

  1. 在外壳中它工作
  2. 从 Bash 脚本运行而不排除cp -var test testbkp它的工作原理。

当我尝试使用排除选项从 Bash 脚本运行时

cp -var test/!(test2) testbkp, 它不起作用。

没有任何输出,什么也没有,也没有错误消息。

我也检查了这篇文章,但没有结果: cp command won't run if executed from shell script

如何在 Bash 脚本中运行此 cp 命令并排除文件夹?

linux
  • 1 个回答
  • 729 Views
Martin Hope
Blockchain Office
Asked: 2023-01-18 03:39:38 +0800 CST

具有可变数组名称的 bash 循环关联数组

  • 7

我有很多关联数组,我只想使用 1 个循环。按给定名称选择循环数组

我想用一个变量选择/构建数组名的一部分,然后用那个名字循环,但它不起作用。

与 OUTPUT3 和 OUTPUT4 类似,但语法错误。

对于输出 3,我收到:“bash 错误替换”

对于输出 4,我收到:“只有数组名和 0”

#!/bin/bash
clear

declare -A a1 a2 a3

a1['1']="1-1V"

a2['1']="2-1V"
a2['2']="2-2V"

a3['1']="3-1V"
a3['2']="3-2V"
a3['3']="3-3V"

# 1 OUTPUT WORKS
for i in ${!a1[*]}
do
echo -e "$i : ${a1[$i]}"
done

# 2 OUTPUT WORKS
for i in ${!a2[*]}
do
echo -e "$i : ${a2[$i]}"
done

# 3 OUTPUT - WRONG SYNTAX
selectkey="3"
for i in ${!a$selectkey[@]}
do
echo -e "$i : ${a$selectkey[$i]}"
done

# 4 OUTPUT - WRONG SYNTAX
key="3"
aselect="a${key}[*]"
# THIS ECHO WORKS
echo -e "ARRAY: ${!aselect}"

for i in ${!aselect[@]}
do
echo -e "$i : ${aselect[$i]}"
done

更新

解决方案是nameref|declare -n

这现在对我有用:

#!/bin/bash
clear

declare -A a1 a2 a3

a1['1']="1-1V"

a2['1']="2-1V"
a2['2']="2-2V"

a3['1']="3-1V"
a3['2']="3-2V"
a3['3']="3-3V"

varname="a3"
counter=1

declare -n refname=${varname}

for i in "${!refname[@]}"
do
echo -e "$counter ${refname[$counter]}"
counter=$((counter+1))
done
bash
  • 3 个回答
  • 119 Views
Martin Hope
Blockchain Office
Asked: 2022-07-13 09:50:07 +0800 CST

如何通过 ssh 将字符串发送到服务器上的脚本,并使用简单的入狱用户,并将服务器上的结果保存在本地计算机上的文件中?

  • 2

我将从本地机器发送一个字符串到远程 ssh 服务器。

用户在一个简单的监狱里,所以他不能执行命令、登录、在远程 bash 上做一些事情,他只能发送一个字符串/值/变量并run在 ssh 服务器上执行脚本。

这是用户的简单监狱

这是 USER 登录和运行 shell 的默认设置:

chsh -s /bin/bash [USER]

但是我将设置更改为这个简单的监狱:

chsh -s /home/[USER]/./run [USER]

ssh 服务器接收字符串并将字符串更改为新结果。

我将这个新结果保存在本地机器上一个名为OUTPUT.

尝试后我找到了这个解决方案,称它为 hack 或 bug,但我不知道这是否是正确的方法!

  1. 使用此命令,我使用没有密码的 ssh 密钥 ssh 到远程服务器。

我在本地机器上的 SSH 命令连接到服务器:

ssh -i [KEY] -p [XXXX] [USER]@[HOST] '123' <<< "$VALUE" > OUTPUT
  1. 脚本从变量run接收字符串123$VALUE

run我在 SSH 服务器上的名字脚本

#!/bin/bash
echo "WELCOME TO SSH"
read VALUE
echo $VALUE

这只是一个例子,看看我的意思,真正的脚本生成一个哈希。

  1. 在我的本地机器上,我将远程 ssh 服务器OUTPUT脚本中的结果存储/保存在我的文件中。run

我的本地文件OUTPUT与来自服务器的结果

WELCOME TO SSH
123

该read VALUE命令在没有提示的情况下将值保存123在变量中$VALUE,并将结果保存在我的本地计算机上。

执行步骤:

  1. 连接到 ssh 服务器
  2. 从我的本地机器发送一个字符串到远程 ssh 服务器
  3. 远程服务器将此字符串更改为新结果
  4. 将本地计算机上的新结果保存在文件中

当我启动 ssh 命令时,它会打开连接,

脚本有效,我WELCOME TO SSH在终端上看到

我在本地机器上收到结果并关闭连接。

您可以在您的机器上轻松测试此示例以了解我的意思。

这正是我需要的,但我想知道:

为什么我需要read

为什么我没有得到提示。

此示例的其他解决方案是什么。

如何通过 ssh 将字符串发送到服务器上的脚本,并使用被监禁的用户将服务器上的结果保存在本地计算机上的文件中?

更新解决方案

从@ilkkachu 回答我可以运行这个命令并发送:

字符串和变量:

ssh -i [KEY] -p [XXXX] [USER]@[HOST] "123" "$VALUE" > OUTPUT

细绳:

ssh -i [KEY] -p [XXXX] [USER]@[HOST] "123"> OUTPUT

多变的:

ssh -i [KEY] -p [XXXX] [USER]@[HOST] "$VALUE" > OUTPUT

没有什么:

ssh -i [KEY] -p [XXXX] [USER]@[HOST] > OUTPUT

#!/bin/bash

value=     # empty by default
if [ "$1" = -c ]; then
    value="$2"
fi
if [ -z "$value" ]; then
    echo "value is empty" >&2
    exit 1
fi
# do something with the value
echo "$value" | rev 

SSH authorized_keys 命令选项

从这篇文章:

SSH authorized_keys 命令选项:多个命令?

不,这不是“允许”命令,而是“强制”命令(作为 ForceCommand 选项)。唯一的可能性是对不同的命令使用不同的键或从标准输入读取参数。

这是一个很好的提示,但对于单个命令,例如备份或输出一些信息。

如果我运行类似的命令rsync,如果我不想收到错误,我必须做更多的配置。

所以我会和一个简单的被监禁用户和一个给定的脚本呆在一起。

ssh openssh
  • 2 个回答
  • 160 Views
Martin Hope
Blockchain Office
Asked: 2022-03-01 01:57:06 +0800 CST

bash 脚本,使用 bash 的内置 /dev/tcp 检查端口响应,时间延迟 | 挂起| 加速

  • 4

使用此脚本,我检查主机是否使用bash 的内置 /dev/tcp 在给定端口上响应。

我可以使用 IP 地址或域(主机名)。

脚本 1

#!/bin/bash

HOST_NAME="127.1"
HOST_PORT="80"

if ( (exec 3<>/dev/tcp/${HOST_NAME}/${HOST_PORT}) 2> /dev/null); then
    echo -e "PORT: ${HOST_PORT} | ON"
    else
    echo -e "PORT: ${HOST_PORT} | OFF"
fi

exit;

脚本 2

#!/bin/bash

HOST_NAME="127.1"

for HOST_PORT in {1..1000}
do

if ( (exec 3<>/dev/tcp/${HOST_NAME}/${HOST_PORT}) 2> /dev/null); then
    echo -e "PORT: ${HOST_PORT} | ON"
    else
    echo -e "PORT: ${HOST_PORT} | OFF"
fi
done

exit;

脚本 3

#!/bin/bash

HOST_NAME="127.1"
declare -A PORT_ON

for HOST_PORT in {1..65535}
do
    if ( (exec 3<>/dev/tcp/${HOST_NAME}/${HOST_PORT}) 2> /dev/null); then
        PORT_ON[${HOST_PORT}]="ON"
    fi
done

for i in ${!PORT_ON[*]}
do
    echo -e "$i : ${PORT_ON[$i]}"
done

exit;

在我们的一些本地和在线域上, Script 3挂在一些端口上,并且需要更长的时间才能跳转到下一个端口扫描,例如在 ssh 上(因为防火墙或其他服务)。当我扫描所有 65535 端口时,我该如何管理它,它会立即继续并且可以加快脚本速度,这需要很长时间。

我的 GNU/Linux 发行版:

Distributor ID: Debian

Description:    Debian GNU/Linux 10 (buster)

Release:        10

Codename:       buster

4.19.0-16-amd64

我的 /etc/apt/sources.list

deb http://security.debian.org/debian-security buster/updates main contrib

deb-src http://security.debian.org/debian-security buster/updates main contrib

deb http://deb.debian.org/debian/ buster-updates main contrib

deb-src http://deb.debian.org/debian/ buster-updates main contrib

我只能从这个 repos 安装。

bash 脚本,使用 bash 的内置 /dev/tcp 检查端口响应,时间延迟 | 挂起| 加速

我怎样才能加快和终止时间延迟?

bash scripting
  • 1 个回答
  • 495 Views
Martin Hope
Blockchain Office
Asked: 2022-02-23 03:25:51 +0800 CST

bash 计数文件和目录、摘要大小和 EXCLUDE 是 fuse|sshfs 的文件夹

  • 3

我需要一个 bash 脚本的帮助,该脚本计算 Linux 系统 (Debian) 上指定目录中的文件和文件夹,但我想排除指定的文件夹。

我有一个workdir用不同的脚本文件和文件夹命名的主目录。在里面workdir,我有一个名为mysshfs. 我使用 fuse/sshfs 在文件夹中挂载一个外部文件mysshfs夹。

现在我开始一些命令来获取有关文件/目录计数和文件/目录大小的信息,但我想排除目录mysshfs。

我的 bash 命令有效:

  1. 获得完整尺寸workdir| 没有使用保险丝/sshfs

    $ du -hs workdir
    
  2. 得到 的全尺寸workdir,不包括mysshfs| 使用中的保险丝/sshfs

    $ du -hs --exclude=mysshf workdir
    
  3. 计算文件workdir| 没有使用保险丝/sshfs

    $ find workdir -type f | wc -l
    
  4. 计算文件夹workdir| 没有使用保险丝/sshfs

    $ find workdir -type d | wc -l
    
  5. 中的文件计数workdir,不包括mysshfs| 没有使用保险丝/sshfs

    $ find workdir -type f -not -path "*mysshfs*" | wc -l
    
  6. 中的文件夹计数workdir,不包括mysshfs| 没有使用保险丝/sshfs

    $ find workdir -type d -not -path "*mysshfs*" | wc -l
    

当我使用命令5 和 6并且远程目录安装在该mysshfs目录下时,命令会挂起。

这些命令最终可以工作并显示正确的输出,但看起来这些命令仍在排除目录中查找,即使它们不应该在,因此显示结果需要很长时间。

我的错误在哪里,或者我在命令 5 和 6 中忘记了什么?或者我可以为我的结果使用其他命令吗?

我需要使用 2 个单独的命令来计算文件和目录,并排除安装在 fuse/sshfs 上的指定文件夹以获得快速结果。

bash find
  • 1 个回答
  • 497 Views

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve