AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / 问题

All perguntas(unix)

Martin Hope
vume
Asked: 2022-07-13 02:02:48 +0800 CST

Existe uma ferramenta ou script que pode encontrar duplicatas muito rapidamente comparando apenas o tamanho do arquivo e uma pequena fração do conteúdo do arquivo?

  • 16

Ferramentas como fdupes são um exagero ridículo ao lidar com arquivos compactados jpg ou h264. Dois desses arquivos com exatamente o mesmo tamanho de arquivo já é uma boa indicação de que eles são idênticos.

Se, digamos, além disso, 16 pedaços equidistantes de 16 bytes forem extraídos e comparados e eles também forem iguais, isso seria bastante evidência para eu supor que eles são idênticos. Existe algo assim?

(A propósito, estou ciente de que o tamanho do arquivo por si só pode ser um indicador pouco confiável, pois existem opções para compactar para determinados tamanhos de destino, como 1 MB ou 1 CD/DVD. Se o mesmo tamanho de destino for usado em muitos arquivos, é bastante razoável que alguns arquivos diferentes terão exatamente o mesmo tamanho.)

find file-comparison
  • 7 respostas
  • 2902 Views
Martin Hope
DefenestrationDay
Asked: 2022-05-21 04:05:12 +0800 CST

Exclua um arquivo chamado '.env'$'\r'

  • 16

Não tenho ideia do que criou esse arquivo - acho que um script de shell terrível.

É chamado'.env'$'\r'

Eu tentei várias versões do rm, e a técnica de abrir o diretório com vim ./, selecionando o arquivo e Shift-D para excluir.
Isso não funcionou, falhando com um

**warning** (netrw) delete(/root/squawker/.env) failed!
NetrwMessage [RO]
"NetrwMessage"  --No lines in buffer--

Como posso excluir este arquivo traquina?

Isso está no Ubuntu 20.04

filenames rm
  • 4 respostas
  • 2526 Views
Martin Hope
hbogert
Asked: 2022-01-26 03:53:39 +0800 CST

Como funciona o RAID0 por baixo, quando os dispositivos têm tamanhos diferentes?

  • 16

Para minha surpresa, o instalador do CentOS 7 me permitiu criar um dispositivo RAID0 composto por aproximadamente um disco de 17 GB e um disco de 26 GB. Eu esperava que, mesmo que isso permitisse, que o tamanho lógico fosse 2 * min(17 GB, 26 GB) ~= 34 GB. No entanto, posso realmente ver um tamanho utilizável de 44 GB no nível do sistema de arquivos:

$ cat /sys/block/md127/md/dev*/size
16955392
26195968
$ df -h |grep md
/dev/md127   44G 1.9G 40G 5% /

Como o subsistema md se comportará em termos de desempenho, em comparação com uma situação em que os discos são iguais? Como é impossível fazer uma distribuição balanceada direta em 2 discos.

mdadm software-raid
  • 3 respostas
  • 2187 Views
Martin Hope
Martian2020
Asked: 2021-11-09 05:45:40 +0800 CST

A negação do bash de -a (o arquivo existe) não altera o resultado, enquanto para ! -e altera o resultado

  • 16

Estou perplexo, mas ainda acho que não entendi Bash de alguma forma.

/$ if [   -e /bin/grep ]; then echo yea; else echo nay ; fi
yea
/$ if [ ! -e /bin/grep ]; then echo yea; else echo nay ; fi
nay
/$ if [   -a /bin/grep ]; then echo yea; else echo nay ; fi
yea
/$ if [ ! -a /bin/grep ]; then echo yea; else echo nay ; fi
yea

Por que a negação !reverte o efeito do -eteste, mas não -ao teste?

Man bash disse:

teste :

3 argumentos

As condições a seguir são aplicadas na ordem listada.

  1. Se o segundo argumento for um dos operadores condicionais binários listados acima em EXPRESSÕES CONDICIONAIS, o resultado da expressão será o resultado do teste binário usando o primeiro e o terceiro argumentos como operandos. Os operadores -ae -osão considerados operadores binários quando há três argumentos.
  2. Se o primeiro argumento for !, o valor será a negação do teste de dois argumentos usando o segundo e o terceiro argumentos.

Expressões Condicionais Bash

Expressões condicionais são usadas pelo [[ comando composto e pelos comandos internos teste[

-a file
Verdadeiro se o arquivo existir.
-b file
True se o arquivo existir e for um arquivo especial de bloco.
-c file
True se o arquivo existir e for um arquivo especial de caracteres.
-d file
True se o arquivo existir e for um diretório.
-e file
Verdadeiro se o arquivo existir.

bash test
  • 2 respostas
  • 1603 Views
Martin Hope
FlashDaggerX
Asked: 2021-11-05 11:28:46 +0800 CST

Dividir um arquivo pequeno em segmentos de 512 bytes o altera, mas dividi-lo em segmentos de 1k não

  • 16

Então, estou tentando dividir um arquivo de 64 MB FileCarve.001em segmentos de 512 bytes (cada bloco tem 512 bytes). Eu preciso ter certeza de que o arquivo tem os mesmos dados quando dividido em arquivos menores, então eu cattodos os arquivos para padronizar e canalizá-los sha256sum(há muitos arquivos, então eu preciso fazer isso com finde xargs).

Dividir o arquivo em segmentos de 512 bytes parece distorcer os dados quando a saída é dividida pelo splitcomando.

$ dd if=FileCarve.001 bs=512 | split -b512 - splits/img
131072+0 records in
131072+0 records out
67108864 bytes (67 MB, 64 MiB) copied, 4.10824 s, 16.3 MB/s
$ sha256sum FileCarve.001 
3e64100044099b10060f5ca3194d4d60414941c7cb26437330aba532852a60cd  FileCarve.001
$ find splits/ -type f -print0 | xargs -0 cat | sha256sum
25b37f28204895e5d0b1cb160c5fa599d15188baf7e529ccc92a10fdb3f0515a  -

Mas dividir o arquivo em segmentos de 1 kilobyte (1000 bytes) parece funcionar bem.

$ dd if=FileCarve.001 bs=512 | split -b1k - splits/img
131072+0 records in
131072+0 records out
67108864 bytes (67 MB, 64 MiB) copied, 2.06029 s, 32.6 MB/s
$ sha256sum FileCarve.001 
3e64100044099b10060f5ca3194d4d60414941c7cb26437330aba532852a60cd  FileCarve.001
$ find splits/ -type f -print0 | xargs -0 cat | sha256sum
3e64100044099b10060f5ca3194d4d60414941c7cb26437330aba532852a60cd  -

Por que eles são diferentes? Há algo que não entendo sobre como os blocos funcionam em um dispositivo de armazenamento?

Em resposta a um comentário: limpei o split/diretório em cada execução.

find wildcards
  • 1 respostas
  • 2129 Views
Martin Hope
Basj
Asked: 2020-02-04 07:30:20 +0800 CST

Diferença de dois grandes arquivos binários brutos semelhantes

  • 16

Digamos que eu tenha um arquivo de 4 GB abcno meu computador local. Fiz o upload para um servidor distante via SFTP, demorou algumas horas.

Agora modifiquei ligeiramente o arquivo (provavelmente 50 MB no máximo, mas não bytes consecutivos neste arquivo) localmente e salvei-o em abc2. Também mantive o arquivo original abcno meu computador local.

Como calcular um diff binário de abce abc2?

Formulários:

  • Eu só poderia enviar um patcharquivo (provavelmente no máximo 100 MB) para o servidor distante, em vez de reenviar o abc2arquivo inteiro (levaria algumas horas novamente!) e recriar abc2no servidor distante abce patchsomente.

  • Localmente, em vez de desperdiçar 8 GB para fazer backup de ambos abce abc2, eu poderia salvar apenas abc+ patch, então levaria < 4100 MB apenas.

Como fazer isso?

PS: para texto, eu sei diff, mas aqui estou procurando algo que possa funcionar para qualquer formato binário bruto, podem ser arquivos zip ou executáveis ​​ou até mesmo outros tipos de arquivo.

PS2: Se possível, não quero usar rsync; Eu sei que ele pode replicar alterações entre 2 computadores de maneira eficiente (não reenviando dados que não foram alterados), mas aqui eu realmente quero ter um patcharquivo, que seja reproduzível posteriormente se eu tiver ambos abce patch.

files diff
  • 5 respostas
  • 10090 Views
Martin Hope
user387366
Asked: 2020-01-18 08:07:32 +0800 CST

Como posso fazer a saída de `time` em zsh ser como bash?

  • 16

Formato do time <command>bash:

$time ./test.sh

real    0m0.000s
user    0m0.006s
sys     0m0.000s

Em zsh:

 $time ./test.sh                                                       
 ./test.sh  0.01s user 0.00s system 94% cpu 0.007 total

Isso sempre me incomodou quando mudei para zsh. Como fazer a saída do timezsh ser como o bash?

bash zsh
  • 1 respostas
  • 3377 Views
Martin Hope
Peter J Langley
Asked: 2019-11-19 09:41:06 +0800 CST

Sim automático para prompts ao instalar o pacote no Alpine Linux

  • 16

Gostaria de saber se apk addé capaz de assumir automaticamente sim a qualquer prompt ao instalar um novo pacote no Alpine Linux?

Estou familiarizado com a execução de algo como apt-get install -y curlno Ubuntu e me pergunto se há um comando equivalente para o meu caso de uso.

software-installation
  • 2 respostas
  • 9517 Views
Martin Hope
shawty
Asked: 2019-10-08 03:14:52 +0800 CST

É possível ter 2 portas abertas no SSH com 2 esquemas de autenticação diferentes?

  • 16

No momento, estou tentando configurar um servidor SSH para que o acesso a ele de fora da rede seja permitido SOMENTE usando uma chave SSH e não permita o acesso ao root ou por qualquer outra combinação de nome de usuário/senha.

Ao mesmo tempo, os usuários internos da rede ainda precisam se conectar ao mesmo sistema, mas esperam fazer login no sentido mais tradicional com um nome de usuário e senha.

Os usuários externos e internos acessarão o sistema a partir do Windows usando PuttySSH e o acesso externo entrará no sistema através de um firewall de encaminhamento de porta que abrirá a porta de origem para o mundo externo em alguma porta numerada arbitrariamente escolhida como 55000 (ou o que os administradores decidirem)

O diagrama a seguir tenta mostrar melhor os fluxos de tráfego.

Configuração SSH

Eu sei como configurar o login real para usar apenas chaves, e sei como negar root, o que não sei é como separar os dois tipos de login.

Eu havia considerado executar duas cópias do SSHD escutando em portas diferentes no mesmo IP e ter duas configurações diferentes para cada porta.

Também considerei configurar uma regra de "correspondência", mas não tenho certeza se posso separar as configurações de todo o servidor usando essas opções.

Finalmente, a pessoa externa que efetua o login será sempre o mesmo usuário, vamos chamá-lo de "Frank" para os propósitos desta pergunta, portanto, "Frank" só poderá fazer login a partir do IP externo e nunca estará sentado na frente de qualquer sistema se conectando internamente, enquanto todos os outros usuários do sistema só se conectarão internamente e nunca se conectarão a partir de um IP externo.

Franks IP do qual ele se conecta é um atribuído dinamicamente, mas o IP público que ele está conectando também é estático e nunca mudará, o IP interno do encaminhador de porta também nunca mudará e nem o endereço IP interno do servidor SSH .

Os clientes internos sempre se conectarão a partir de um IP na faixa de rede privada da qual o IP dos servidores SSH internos faz parte e é uma máscara de 16 bits EG: 192.168.0.0/16

Essa configuração é possível, usando um arquivo de configuração e uma instância do servidor SSH? Se sim, como faço?

ou

Estou muito melhor usando 2 servidores em execução com configuração diferente?

Para ref, o servidor SSH está sendo executado no Ubuntu 18.04.

login
  • 3 respostas
  • 16697 Views
Martin Hope
kyb
Asked: 2019-09-26 23:23:35 +0800 CST

Como proteger a função bash de ser substituída? Tornar somente leitura

  • 16

No bashshell, podemos definir uma função fcom

f(){ echo Hello; }

e então redeclarar/substituir, sem nenhum erro ou mensagem de aviso, com

f(){ echo Bye; }

Eu acredito que há uma maneira de proteger as funções de serem substituídas dessa maneira.

bash
  • 2 respostas
  • 2355 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve