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 / user-342980

Z0OM's questions

Martin Hope
ReflectYourCharacter
Asked: 2025-03-27 21:50:30 +0800 CST

Como posso usar o lsblk para exibir todos os dispositivos, exceto meu dispositivo raiz/principal "sda", onde meu sistema de arquivos raiz é "/"?

  • 6

Eu não imaginaria que seria tão difícil obter esse resultado. É exatamente esse o resultado que desejo da minha configuração.

Eu uso LUKS (então meu sistema é criptografado) e LVM.

Não quero que sda ​​seja exibido porque é onde meu sistema de arquivos raiz vive, e é meu dispositivo raiz. A solução também deve funcionar para sistemas sem LUKS ou LVM, o que significa que deve lidar com todos os cenários.

Estou usando um Debian 12.x e quero exibir todos os dispositivos principais em um comando de linha, se possível, exceto meu dispositivo raiz , independentemente de ser um LVM, LUKS ou não, etc.

O comando deve ser flexível, e não quero usar especificações fixas *--vg-root, etc., se possível.

Comentário de @bertieb: Pela saída adicionada, parece que o ponto de montagem raiz está em um grupo de volumes em um volume criptografado no dispositivo que está se apresentando como sda -- o OP quer que todo o dispositivo e todos os 'dispositivos' de bloco associados sejam eliminados? Ou seja, remova o root vg E o swap, crypt, contendo a partição (sda3) mais outras partições e, finalmente, o dispositivo (sda)

E esse deve ser meu resultado, então todos os dispositivos principais sem, sda porque esse é meu dispositivo raiz, onde meu sistema de arquivos raiz está /, e sem que eu precise especificar detalhes, então posso usá-lo em outros dispositivos/sistemas também, seja LVM, LUKS, etc., sem precisar saber como o root é chamado, ou qual é o UUID, etc.

Não quero ver as partições, apenas os dispositivos principais sem dispositivo raiz, como neste comandolsblk -d -o NAME,SIZE --sort SIZE

Esta é a saída que preciso:

  • Sem sda (já que é o dispositivo raiz que contém meu sistema de arquivos raiz /)

  • Apenas os dispositivos principais são exibidos (independentemente de quantos existam)

  • Nenhuma partição incluída dos outros dispositivos

Não sei como explicar melhor.

RESULTADO QUE PRECISO:
NAME     SIZE
nvme0n1  238.5G

Minha configuração:

$ lsblk -d -o NAME,SIZE --sort SIZE
NAME      SIZE
sda      57,3G
nvme0n1 238,5G
$ lsblk -fs -o NAME
# ROOT DEVICE
sda1
`-sda
sda2
`-sda
desktop--vg-root
`-sdb3_crypt
  `-sda3
    `-sda
...
...
$ lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                    8:0    1  57,3G  0 disk  
├─sda1                 8:1    1   512M  0 part  /boot/efi
├─sda2                 8:2    1   488M  0 part  /boot
└─sda3                 8:3    1  56,3G  0 part  
  └─sdb3_crypt       254:0    0  56,3G  0 crypt 
    ├─desktop--vg-root   254:1    0  55,3G  0 lvm   /
    └─desktop--vg-swap_1 254:2    0   980M  0 lvm   [SWAP]
nvme0n1              259:0    0 238,5G  0 disk  
└─nvme0n1p1          259:1    0 238,5G  0 part  /user/backup

Eu não quero isso, por exemplo /dev/mapper/desktop--vg-root, sdb3_crypt, sda3não sda.

Mas aqui no exemplo sda, este é o dispositivo raiz, não preciso deste dispositivo na saída.

Infelizmente, ambas as respostas não atendem à minha solução.

MEUS DISPOSITIVOS, MINHA CONFIGURAÇÃO:

NAME           SIZE      
sda            57.3G     
|-sda1         512M      
|-sda2         488M      
`-sda3         56.3G     
`-sdb3_crypt   56.3G     
`-desktop--vg-swap_1980M      
nvme0n1        238.5G    
`-nvme0n1p1    238.5G 

RESULTADO QUE PRECISO:

NAME     SIZE
nvme0n1  238.5G
Configuração do sistema Debian, lsblk e outras informações:
Operating System: Debian GNU/Linux 12 (bookworm)  
Kernel: Linux 6.1.0-22-amd64
Architecture: x86-64

lsblk from util-linux 2.38.1

$ apt-get install --only-upgrade util-linux

util-linux is already the newest version (2.38.1-5+deb12u3)
De @terdon RESULTADO:

mylsblk(){ lsblk -o NAME,SIZE,MOUNTPOINT | awk '$NF!="/"{printf "%-15s%-10s\n", $1,$2}'; }

NAME           SIZE      
sda            57.3G     
|-sda1         512M      
|-sda2         488M      
`-sda3         56.3G     
`-sdb3_crypt   56.3G     
`-desktop--vg-swap_1980M      
nvme0n1        238.5G    
`-nvme0n1p1    238.5G 

$ lsblk -o NAME,SIZE,MOUNTPOINT

NAME                   SIZE MOUNTPOINT
sda                   57.3G 
|-sda1                 512M /boot/efi
|-sda2                 488M /boot
`-sda3                56.3G 
  `-sdb3_crypt        56.3G 
    |-desktop--vg-root    55.3G /
    `-desktop--vg-swap_1  980M [SWAP]
nvme0n1              238.5G 
$ lsblk -o NAME,SIZE,MOUNTPOINT | awk '$NF!="/"{printf "%-15s%-10s\n", $1,$2}';
NAME           SIZE      
sda            57.3G     
|-sda1         512M      
|-sda2         488M      
`-sda3         56.3G     
`-sdb3_crypt   56.3G     
`-desktop--vg-swap_1980M      
nvme0n1        238.5G

$ lsblk -o NAME,SIZE,MOUNTPOINT | awk '$NF=="/"'

|-desktop--vg-root 55.3G /

De Chris Davies RESULTADO:
Root partition: mapper/desktop--vg-root
Root device: 
NAME      SIZE
sda      57.3G
nvme0n1 238.5G
De @muru:

lsblk -d $(findmnt -no source /)

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
desktop--vg-root 254:1    0 55,3G  0 lvm  /
debian
  • 2 respostas
  • 268 Views
Martin Hope
ReflectYourCharacter
Asked: 2025-03-26 18:37:42 +0800 CST

Por que a lógica é tratada de forma diferente em rsync '--delete src/*', '--delete src/' e '--delete src/.'

  • 5

Quero copiar e sincronizar diretórios usando rsyncou --deleteem --delete-excludedum script bash ou shell em um sistema Debian.

O diretório não foi sincronizado inicialmente, o que significa que os arquivos foram excluídos na origem.

Verifiquei as duas postagens e depois percebi que era devido ao *.

Portanto, há diferenças entre src/, src/.esrc/*

Não se trata de arquivos ocultos ou algo do tipo.

  • rsync --delete não está funcionando

  • rsync --delete não remove todos os arquivos excluídos

  • rsync não apaga arquivos no diretório de destino

Por que a opção 1 é tratada de forma diferente das opções 2 e 3 em termos de lógica?

Opção 1 (não funciona):

rsync -avr src/* dst/ --delete-excluded

rsync -avr src/* dst/ --delete

Opção 2 (funcionando):

rsync -avr src/ dst/ --delete-excluded

rsync -avr src/ dst/ --delete

Opção 3 (funcionando):

rsync -avr src/. dst/ --delete-excluded

rsync -avr src/. dst/ --delete

Quando excluo arquivos e diretórios em src, eles não são excluídos/sincronizados com /*, mas são com /e /..

Do homem rsync:

--delete Isso diz ao rsync para excluir arquivos estranhos do lado receptor (aqueles que não estão no lado de envio), mas apenas para os diretórios que estão sendo sincronizados. Você deve ter pedido ao rsync para enviar o diretório inteiro (por exemplo, lqdirrq ou lqdir/rq) sem usar um curinga para o conteúdo do diretório (por exemplo, lqdir/*rq), pois o curinga é expandido pelo shell e o rsync recebe uma solicitação para transferir arquivos individuais, não o diretório pai dos arquivos. Arquivos que são excluídos da transferência também são excluídos de serem excluídos, a menos que você use a opção --delete-excluded ou marque as regras como correspondentes apenas no lado de envio (veja os modificadores include/exclude na seção FILTER RULES).

  • rsync(1) - página de manual do Linux

Não é basicamente a mesma coisa?

O que o rsync vê, porque o shell expande a/*, o rsync não conhece mais a pasta pai a/ – ele só recebe uma lista de arquivos/subdiretórios. Ele só compara os arquivos passados ​​com o destino, não com o estado geral. --delete não pode excluir de forma confiável porque o rsync não sabe o que deveria estar dentro de a/.

O diretório principal é especificado com src/, src/.e src/*está certo na lógica ou não, não entendi?

bash
  • 1 respostas
  • 55 Views
Martin Hope
ReflectYourCharacter
Asked: 2025-03-24 18:49:03 +0800 CST

Como um script bash pode determinar como foi iniciado? [duplicado]

  • 6
Esta pergunta já tem uma resposta aqui :
O script começou como `source` ou `executable`? (1 resposta)
Fechado há 20 horas .

Atualmente, estou executando vários scripts no Debian 12.X com o seguinte bash:

GNU bash, version 5.2.15(1)-release (x86_64-pc-linux-gnu)

Tenho os seguintes métodos/opções para executar o script.

Cada método tem os seguintes impactos ou opções:

Method        | New Process | Shell Ends with exit | Variables Persist |
------------------------------------------------------------------------
./script      |    YES      |         NO           |      NO           |
------------------------------------------------------------------------
bash script   |    YES      |         NO           |      NO           |
------------------------------------------------------------------------
. ./script    |    NO       |         YES          |      YES          |
------------------------------------------------------------------------
source script |    NO       |         YES          |      YES          |
------------------------------------------------------------------------

@terdon

Note que . ./script e source script são exatamente a mesma coisa. O comando padrão é . e o bash também oferece o sinônimo source, mas não há diferença entre os dois além do nome.

Dependendo do método que eu uso para iniciar o script e depois encerrá-lo, posso reutilizar diferentes variáveis ​​e opções ou não no shell atual ou na sessão de terminal, se elas não forem encerradas/fechadas/efetuadas logout .

Se eu executar o script com ./scriptou bash script, uma nova instância do shell será iniciada, e as variáveis ​​de ambiente definidas dentro dela serão válidas somente nessa instância.

Após o término do script, essas variáveis ​​são perdidas.

Entretanto, se eu executar o script com . ./script, as variáveis ​​permanecerão na sessão do shell pai porque elas afetam diretamente o shell atual.

Nesse caso, saber se as variáveis ​​persistirão na sessão pai é crucial se eu quiser que elas estejam disponíveis pelo resto da sessão sem redefini-las manualmente.

Também posso decidir, por exemplo, se o script termina com exit ou return e, dependendo disso, se ocorre um logout ou se o shell é fechado.

Então, isso influencia outras etapas posteriores.

Posso detectar no script como ele foi iniciado de forma simples e fácil, ou seja, qual método foi usado para armazenar um valor em uma variável e depois processá-lo sem passar parâmetros na inicialização?

bash
  • 1 respostas
  • 46 Views
Martin Hope
Z0OM
Asked: 2024-10-15 21:55:23 +0800 CST

Como posso ligar a tela novamente usando setterm ou outro comando, apenas com os utilitários principais via ssh?

  • 5

Tenho um Debian 12sistema que console-onlynão possui interface gráfica/ambiente de trabalho.

Desliguei a tela usando setterm --blank forceo próprio dispositivo e agora não consigo ligá-la novamente pressionando uma tecla porque forceisso faz com que a entrada do teclado seja ignorada.

Tenho acesso por meio SSHde um ambiente Debian 12 Desktop, mas quando entro setterm -blank 0como SSH, rootrecebo a mensagem terminal xterm-256-color does not support --blank.

Também não consigo alternar entre diferentes TTYsno próprio dispositivo.

Mesmo quando alterno para um TTY no ambiente de trabalho Debian e uso o setterm --blank 0, não recebo nenhuma mensagem de erro, mas nada acontece.

Com setterm --blank poke, eu obtenho cannot force unblank.

Existe outro comando que core utilitieseu possa usar para ativar a tela sem instalar ferramentas adicionais ?

Caso contrário, vou apenas reiniciar.

debian
  • 1 respostas
  • 58 Views
Martin Hope
Z0OM
Asked: 2024-10-08 18:35:52 +0800 CST

como posso excluir ou desativar grupos primários no debian gnu/linux?

  • 5

Quero excluir certos grupos no meu sistema Debian GNU/Linux, mas alguns deles são grupos primários.

Por exemplo, se eu quiser excluir o grupo newsusando/sbin/groupdel news

Eu entendi a mensagem The primary group of the user "news" could not be removed.

  1. Como posso excluí-lo usando um comando shell?

  2. Se eu excluir manualmente grupos específicos nos arquivos:

/etc/group

/etc/gshadow

/etc/passwd

/etc/security/group.conf

Há mais alguma coisa que eu precise considerar ou excluir em outro lugar?

  1. Os grupos também serão excluídos/desativados se eu simplesmente comentar as linhas nesses arquivos?

  2. Qual é a melhor maneira de excluir grupos primários que realmente não são necessários?

Editar:

Eu entendo as respostas. Ainda assim, quero deletar jogos como exemplo.

Agora verifiquei find / -group games 2>/dev/nullquais find / -user games 2>/dev/nullarquivos o usuário ou grupo usa ou têm direitos para jogos.

Encontrei 4 arquivos para dialout find / -group dialout 2>/dev/null, mas nada para jogos.

Excluí os jogos de usuário e grupo, mas após reiniciar, a entrada estava presente novamente em /etc/group.

Onde mais devo procurar por que a entrada está sendo regenerada?

Preciso procurar o pacote correspondente para excluir o número e a etiqueta?

Como encontro todas as entradas, pacotes e arquivos relacionados aos jogos em grupo?

Então, além da codificação fixa, não é possível.

Eu entendi corretamente todas as respostas?

Se eu excluir um pacote específico que criou o usuário, o grupo será excluído, mas, caso contrário, terei que pesquisar em todo o sistema e isso talvez danifique meu sistema.

Ainda seria bom saber onde mais as entradas estão presentes para grupos.

Agora tentei o seguinte (mesmo que nem todos façam sentido):

Verificar dados do grupo
getent group games

Pesquisar arquivos do grupo
find / -group games 2>/dev/null

Pesquisar arquivos do usuário
find / -user games 2>/dev/null

Listar pacotes instalados
dpkg -l | grep games

Verifique as dependências de um pacote
apt-cache rdepends games

Verificar processos
ps aux | grep games

Pesquisar logs do sistema
grep games /var/log/syslog

Verificar serviços
systemctl list-units --type=service | grep games

Verifique os arquivos de configuração
grep -r games /etc/

Verifique todos os arquivos em /
grep -r games /

Com o último comando, encontrei muita coisa, mas como as respostas já dizem, é muita desordem.

Obrigado pelas respostas!

bash
  • 3 respostas
  • 67 Views
Martin Hope
Z0OM
Asked: 2024-09-03 20:46:24 +0800 CST

Não consigo fazer login no meu desktop KDE pela tela de login no Debian, depois de excluir alguns pacotes

  • 5

Não consigo fazer login KDE-Desktopno meu Debian12.6 depois de excluir alguns arquivos KDE-specific packages.

A tela de login aparece, mas nada acontece quando digito minha senha.

Eu estava tentando excluir alguns pacotes para tornar o sistema mais enxuto.

O que devo fazer?

debian
  • 1 respostas
  • 30 Views

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