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
intelfx
Asked: 2025-01-21 04:45:00 +0800 CST

Existe uma ferramenta para mover/renomear um diretório "recursivamente" (com conflitos/mesclagem)?

  • 5

Imagine que eu queira mover (renomear) uma árvore de diretórios /var/lib/postgres/datapara /var/lib/postgres/data.old:

/var/lib/postgres
└── data
    ├── base
    │   ├── 16390
    │   │   └── <...>
    │   └── <...>
    │       └── <...>
    ├── global
    │   └── <...>
    ├── pg_wal
    │   ├── <...>
    │   ├── archive_status
    │   └── summaries
    ├── <...>
    └── postmaster.pid

Normalmente, basta uma única rename()chamada de sistema e um único comando: mv data data.old.

Entretanto, imagine que haja um ponto de montagem ativo em algum lugar nessa árvore de diretórios, por exemplo, pg_walem um sistema de arquivos diferente:

$ findmnt
<...>
├─/var/lib/postgres                           stank/data/stratofortress/PostgreSQL                              zfs       rw,noatime,xattr,posixacl,casesensitive
│ └─/var/lib/postgres/data/pg_wal             stank/data/stratofortress/PostgreSQL/pg_wal                       zfs       rw,noatime,xattr,posixacl,case-sensitive
<...>

Alternativamente, imagine que o nome de destino ( data.old) já existe e alguns ramos da árvore de diretórios já foram criados (porque são pontos de montagem, na mesma linha acima).

~~Em ambos os casos~~ No último caso, mvse recusará a fazer qualquer coisa. Executar uma cópia profunda com algo como a cp -aé proibitivamente caro, e reflinks não estão disponíveis por razões que estão fora do escopo desta questão.


Existe uma ferramenta que pode executar um "movimento recursivo" ideal, descendo iterativamente em partes da hierarquia de origem para cada subárvore que não pode ser renomeada por completo, até arquivos individuais (finalmente voltando a fazer uma cópia de cada arquivo individual, se necessário)?

NB: Estou procurando uma solução generalizada que possa ser estendida a qualquer número de subárvores e conflitos, ou seja, mv data/* -t data.old; mv data/pg_wal/* -t data.old/pg_walnão é uma solução. Em outras palavras, por favor, não infira nenhuma restrição ou caso especial do exemplo acima.

files
  • 1 respostas
  • 34 Views
Martin Hope
us3r
Asked: 2025-01-21 04:00:21 +0800 CST

LUKS2 + EXT4 no HDD fazendo leitura aleatória após montagem por ~3 minutos

  • 5

Passos para reproduzir:

  • Use um único HDD USB com LUKSv2 e formatado com padrões ext4 (exceto apenas 10 blocos reservados, não 5%);
  • Use Ubuntu ou Debian com Gnome que permite desbloquear o HDD;
  • Tentar abrir um diretório, abrir um arquivo ou escrever é terrivelmente lento. Eu posso ouvir o arranhão no HDD devido à busca aleatória;
  • O comando dstatmostra cerca de 3 MB/s de leitura por aproximadamente 3 minutos sem tocar no computador.

Nada relevante aparece no log do kernel.

É possível desabilitar isso, o que parece ser uma verificação, e onde?

Desde já, obrigado.

ext4
  • 1 respostas
  • 13 Views
Martin Hope
Gabriel
Asked: 2025-01-21 03:55:26 +0800 CST

Inicializando imagem Linux funcional UEFI / PXE / GRUB

  • 6

Estou tentando configurar um servidor para inicializar o opensuse-15.5 via PXE em um ambiente UEFI e GRUB2. Encontrei este tutorial para Suse que funcionou muito bem. Tenho um cliente obtendo um endereço IP, baixando alguns arquivos do TFTP na mesma máquina e também tenho um servidor NFS configurado.

O problema é que todo tutorial que encontrei parece focar na instalação de um novo SO no cliente, e não é disso que preciso. O que preciso é que um SO bem básico e minimalista seja carregado para poder executar alguns comandos do terminal. Nada mais. Não preciso carregar uma imagem Live ou executar um instalador.

Seguindo as instruções do tutorial, cheguei ao ponto em que o cliente falha ao conectar-se aos repositórios para iniciar a instalação do SO. O que fiz depois disso foi substituir as imagens initrd e linux por aquelas que obtive de uma instalação do SO no mesmo cliente que estou tentando inicializar. Além disso, fiz uma imagem do sistema de arquivos raiz no cliente (a mesma instalação) e a coloquei no servidor, para torná-la acessível por NFS. Depois disso, o resultado foi que o cliente carregou initrd , depois linux , mas parou antes de terminar em um ponto em que (provavelmente) está tentando configurar a placa de vídeo. A linha menciona drm e i915 (Desculpas, não tenho o cliente na minha frente agora, mas atualizarei com a mensagem correta amanhã).

Não tenho certeza nem da imagem do Linux que preciso carregar e dos parâmetros que preciso passar para o GRUB para fazer tudo funcionar. Tenho tentado entender no manual do GRUB e em outras fontes, mas tenho mais perguntas do que certezas. Alguém pode me dizer...: quais comandos devo adicionar ao grub.cfg (e quais devo me livrar)? qual imagem do Linux devo usar? e provavelmente qualquer fonte de informação que venha à mente?

Muito obrigado pelo seu tempo.

Olá.

EDIT: O ponto de travamento não tinha nada a ver com graphics/drm/i915. A última mensagem exibida (por cerca de um minuto) mostraria graphics/drm/i915, mas o problema seria imediatamente depois disso, no hook dracut initqueue . Pelo que entendi, ele de alguma forma começaria a procurar por um memory stick que foi montado e incluído no fstab no momento de fazer a imagem da partição raiz com dd .

Depois de refazer a imagem (e enviá-la ao servidor via NFS desta vez), posso ver que o problema foi resolvido (veja a imagem)insira a descrição da imagem aqui

O problema agora, como visto na próxima imagem, está no estágio de raiz do switch . O que eu realmente não sei o significado, mas vou pesquisar um pouco sobre. insira a descrição da imagem aqui

A próxima imagem é net/grub.cfg . Eu editei esse arquivo e me livrei dos comandos install e instsys porque pensei que eles eram irrelevantes (já que não estou tentando instalar um SO). Eu também tentei esse grub.cfg sem os comandos root e nfsroot que (de acordo com meu entendimento) usariam o sistema de arquivos no disco rígido, em vez do do servidor, e toda a configuração parece funcionar. É somente quando ele precisa obter o sistema de arquivos raiz do servidor NFS que eu tenho o erro na segunda imagem. Desculpas, a terceira imagem está borrada. insira a descrição da imagem aqui

Neste ponto, imagino que haja algo errado com o sistema de arquivos. Fiz a imagem com dd , movi-a para o servidor e montei-a com mount -o loop /image /srv/tftpboot/openSUSE-XXX/rootfs . Li que não é a mesma coisa criar uma imagem de uma partição do que criar uma imagem de um disco inteiro. Além disso, o btrfs é de alguma forma especial em relação à criação de imagens. Existe uma maneira específica de fazer isso? Desculpas pela demora para atualizar. Obrigado novamente por sua ajuda e tempo para comentar.

grub2
  • 2 respostas
  • 71 Views
Martin Hope
Milenko Markovic
Asked: 2025-01-21 00:40:47 +0800 CST

Por que recebi o erro de compilação jq: 1?

  • 5

Eu tentei este script para ver o uso de volumes do Kubernetes

k get pods -n elk | jq -s '[flatten | .[].pods[].volume[]? | select(has("pvcRef"))
 ''{name: .pvcRef.name, capacityBytes, usedBytes, availableBytes, ''percentageUsed: (.usedBytes / .capacityBytes * 100)}]'

entendi isso

{name: .pvcRef.name, capacityBytes, usedBytes, availableBytes, percentageUsed: (.usedBytes / .capacityBytes * 100)}]
jq: 1 compile error

Minhas cápsulas

 k get pods -n elk

k pegue vagens -n alce

NAME                            READY   STATUS    RESTARTS       AGE
elasticsearch-master-0          1/1     Running   0              24d
elasticsearch-master-1          1/1     Running   0              24d
filebeat-filebeat-8jdqn         1/1     Running   0              24d
filebeat-filebeat-vl9js         1/1     Running   0              24d
filebeat-filebeat-xx2fm         1/1     Running   0              24d
filebeat-filebeat-zdj5k         1/1     Running   0              22d
kibana-kibana-9f5c6f974-kzzpr   0/1     Running   0              24d
logstash-logstash-0             1/1     Running   26 (19h ago)   24d

then
k describe kibana

dá

Volumes:
  kube-api-access-2pizdku:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>

E volume

 k get pv -n elk
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM
            STORAGECLASS   REASON   AGE
pvc-0462020   30Gi       RWO            Delete           Bound    elk/elasticsearch-master-elasticsearch-master-1   default  

Por que?

ubuntu
  • 1 respostas
  • 39 Views
Martin Hope
P. Jerome
Asked: 2025-01-20 19:29:55 +0800 CST

crontab para fazer backup distante

  • 5

Estou tentando fazer backup do meu projeto, bancos de dados e ambiente nginx. Para isso, estou fazendo backup do meu servidor principal e colocando-o em /home/backup/. Tudo funciona no servidor principal.

Então, no meu segundo servidor, estou criando um cron para obter esses arquivos por meio do SCP.

Aqui está meu comando:

0 13  * * * sudo sshpass -p MyPassword sudo scp -P 40511 -r [email protected]:/home/backup /home

Estou usando a porta 40511 como SSH. O comando funciona se for iniciado manualmente, mas não funciona com o cron.

MyPassword contém um "!". Eu tentei com e sem aspas duplas.

O que estou fazendo errado?

ssh
  • 1 respostas
  • 28 Views
Martin Hope
Даниил Носиков
Asked: 2025-01-20 16:08:21 +0800 CST

Alternativas ao GNU assembler

  • 5

Estou tentando construir meu sistema do zero, já que gosto muito da ideia de atomicidade de cada programa na abordagem do tipo Unix. Gostaria de preservá-la o máximo possível na minha construção.

Como o GNU binutils, de certa forma, viola esse princípio, gostaria de saber se existe apenas o GNU assembler, que não seria dependente do binutils?

Se não, há alguma alternativa mínima e performática ao GNU assembler? Eu conheço o yasm, mas caso haja um melhor, eu gostaria de saber.

Agradeço antecipadamente.

gnu
  • 1 respostas
  • 49 Views
Martin Hope
Seamus
Asked: 2025-01-20 07:29:06 +0800 CST

Como lidar com uma variável de ambiente ausente ao usar `set -u`

  • 5

Tenho um bashscript que preciso poder iniciar a partir de:

  1. cron
  2. um shell interativo (logon)

Este script precisa saber se foi iniciado a partir de cron, ou iniciado a partir de um shell interativo. Pensei que tinha resolvido esse problema quando declarei uma variável de ambiente em root crontab:

RUN_BY_CRON="TRUE"

No script, eu testo RUN_BY_CRONe uso o resultado para definir outra variável:

if [ "$RUN_BY_CRON" = "TRUE" ]; then            
    ((wait_time=DELAY_HALT*60))
fi

Isso funcionou até eu adicionar set -uao meu script (como uma "estratégia de programação defensiva comum" ). Desde então, quando executo o script a partir da linha de comando, set -usinaliza RUN_BY_CRONcomo um erro de "variável não vinculada":

$ sudo ./skedrtc.sh
./skedrtc.sh: line 24: RUN_BY_CRON: unbound variable

A propósito, executei shellcheckesse script e não recebi nenhum aviso ou erro.

Tentei adicionar um teste para RUN_BY_CRON, mas obtive o mesmo erro. Tentei testar para um shell interativo, mas testar de dentro do script em si não é útil:

...
if [ -z "$RUN_BY_CRON" ]; then        # test for null string
    RUN_BY_CRON="FALSE"
fi
...

if [[ $- == *i* ]]; then              # test for interactive shell
    RUN_BY_CRON="FALSE"
fi

Isso parece uma situação de "catch 22" . Procurei maneiras de criar um bloco try-catch , mas AIUI não tem nada parecido em bash.

P: Como posso evitar esse erro de "variável não vinculada" sem remover o set -u?

bash
  • 1 respostas
  • 31 Views
Martin Hope
Bomber King
Asked: 2025-01-20 05:57:48 +0800 CST

a raiz do sistema de arquivos tem apenas 500 MB

  • 11

Estou no Debian 12 e hoje enquanto estava instalando o Davinci Resolve aconteceu que a seguinte notificação apareceu

a raiz do sistema de arquivos tem apenas 500 MB

embora eu tenha cerca de 400 GB, na verdade não entendo como o Linux usa esse espaço e agora sinto que meu computador pode estar em perigo e temo não conseguir instalar algo no futuro

Alguém poderia me dizer como gerenciar meu uso de espaço? Usei o comando current para ter certeza de que entendi bem as coisas.

$ sudo lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0     4K  1 loop /snap/bare/5
loop1         7:1    0   104M  1 loop /snap/core/16928
loop2         7:2    0  73.9M  1 loop /snap/core22/1722
loop3         7:3    0  73.9M  1 loop /snap/core22/1663
loop4         7:4    0  66.2M  1 loop /snap/core24/490
loop5         7:5    0 104.2M  1 loop /snap/core/17200
loop6         7:6    0  66.2M  1 loop /snap/core24/609
loop7         7:7    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop8         7:8    0 448.6M  1 loop /snap/telegram-desktop/6470
loop9         7:9    0  44.4M  1 loop /snap/snapd/23545
loop10        7:10   0 448.6M  1 loop /snap/telegram-desktop/6474
loop11        7:11   0  44.3M  1 loop /snap/snapd/23258
nvme0n1     259:0    0 476.9G  0 disk 
├─nvme0n1p1 259:1    0   512M  0 part /boot/efi
├─nvme0n1p2 259:2    0  27.9G  0 part /
├─nvme0n1p3 259:3    0   7.5G  0 part [SWAP]
└─nvme0n1p4 259:4    0   441G  0 part /home

embora eu realmente não entenda nada dessa saída

atualização: saída de

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.8G     0  3.8G   0% /dev
tmpfs           769M  2.3M  766M   1% /run
/dev/nvme0n1p2   28G   26G  308M  99% /
tmpfs           3.8G  1.1M  3.8G   1% /dev/shm
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
/dev/loop5      105M  105M     0 100% /snap/core/17200
/dev/loop4       67M   67M     0 100% /snap/core24/490
/dev/loop0      128K  128K     0 100% /snap/bare/5
/dev/loop7       92M   92M     0 100% /snap/gtk-common-themes/1535
/dev/loop2       74M   74M     0 100% /snap/core22/1722
/dev/loop1      104M  104M     0 100% /snap/core/16928
/dev/loop6       67M   67M     0 100% /snap/core24/609
/dev/loop3       74M   74M     0 100% /snap/core22/1663
/dev/nvme0n1p4  434G   25G  387G   7% /home
/dev/loop8      449M  449M     0 100% /snap/telegram-desktop/6470
/dev/loop10     449M  449M     0 100% /snap/telegram-desktop/6474
/dev/loop9       45M   45M     0 100% /snap/snapd/23545
/dev/loop11      45M   45M     0 100% /snap/snapd/23258
/dev/nvme0n1p1  511M  5.9M  506M   2% /boot/efi
tmpfs           769M  2.5M  766M   1% /run/user/1000

saída de

sudo du -mx -d 1 / | sort -n
1   /.cache
1   /lost+found
1   /media
1   /mnt
1   /snap
1   /srv
1   /tmp
12  /etc
137 /boot
1410    /root
6540    /opt
7294    /var
10845   /usr
26235   /

atualização: 21 de janeiro de 2025 depois de ler todos os comentários e perceber o quão complicado, difícil de obter e muito caro isso vai levar

Vou pegar todas as minhas coisas importantes e reinstalar o Debian

a única coisa que resta é saber qual a melhor partição hoje em dia para não entrar nisso novamente no futuro

Vocês sugerem algo especial sobre isso?

debian
  • 2 respostas
  • 1234 Views
Martin Hope
user2690527
Asked: 2025-01-20 00:45:10 +0800 CST

O que significa "suporta funções DRM e pode não ser totalmente acessível" para SDDs SATA?

  • 31

Estou executando o kernel 6.12.10 e nas profundezas do meu log do dmesg, encontrei estas entradas:

kernel: ata4: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
kernel: ata4.00: Model 'INTEL SSDSCKJF360A5L', rev 'LT2i', applying quirks: zeroaftertrim
kernel: ata4.00: ACPI cmd f5/00:00:00:00:00:a0(SECURITY FREEZE LOCK) filtered out
kernel: ata4.00: supports DRM functions and may not be fully accessible
kernel: ata4.00: ATA-10: INTEL SSDSCKJF360A5L, LT2i, max UDMA/133
kernel: ata4.00: 703282608 sectors, multi 0: LBA48 NCQ (depth 32), AA
kernel: ata4.00: Features: Trust Dev-Sleep
kernel: ata4.00: ACPI cmd f5/00:00:00:00:00:a0(SECURITY FREEZE LOCK) filtered out
kernel: ata4.00: supports DRM functions and may not be fully accessible
kernel: ata4.00: configured for UDMA/133
kernel: scsi 3:0:0:0: Direct-Access     ATA      INTEL SSDSCKJF36 LT2i PQ: 0 ANSI: 5
kernel: sd 3:0:0:0: Attached scsi generic sg0 type 0
kernel: sd 3:0:0:0: [sda] 703282608 512-byte logical blocks: (360 GB/335 GiB)
kernel: sd 3:0:0:0: [sda] Write Protect is off
kernel: sd 3:0:0:0: [sda] Mode Sense: 00 3a 00 00
kernel: sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
kernel: sd 3:0:0:0: [sda] Preferred minimum I/O size 512 bytes
kernel:  sda: sda1 sda2 sda3 sda4 sda5 sda6
kernel: sd 3:0:0:0: [sda] Attached SCSI disk

O que significam as seguintes mensagens?

  • supports DRM functions and may not be fully accessible
  • read cache: enabled, doesn't support DPO or FUA

O que DRM significa neste contexto? (Duvido que signifique gerenciamento de direitos digitais.) Essas mensagens estão relacionadas?

Essas mensagens parecem ser novas. Não me lembro de tê-las visto antes. Mas não sei desde qual versão do kernel elas começaram a aparecer.

disk
  • 1 respostas
  • 14647 Views
Martin Hope
havakok
Asked: 2025-01-19 20:57:27 +0800 CST

A seta para cima não completa o comando digitado no gdb, mas itera por todo o histórico

  • 6

Estou tendo problemas com gdb. Quando começo a pressionar a Up Arrowtecla, ele itera para trás pelo histórico. No entanto, se eu começar a digitar um comando, como b, em vez de iterar apenas pelas entradas do histórico que começam com b, gdbele ainda itera para trás por todo o histórico.

O terminal normal (zsh) está bom.

Como faço gdbpara iterar apenas pelo histórico com os comandos relevantes?

ubuntu
  • 2 respostas
  • 30 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