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
Martin Vegter
Asked: 2024-11-10 14:39:22 +0800 CST

erro ucsi_acpi con1: falha ao obter troca de função usb, falha na inicialização do PPM

  • 6

depois que a placa-mãe do meu laptop foi substituída, recebo os seguintes erros durante a inicialização:

ucsi_acpi USBC000:00: error -ENODEV: con1: failed to get usb role switch
ucsi_acpi USBC000:00: error -ENODEV: PPM init failed

até onde posso perceber, as portas USB-C estão funcionando bem. Mas eu gostaria de entender o que esses erros significam e como me livrar deles.

Talvez seja apenas alguma configuração de BIOS UEFI que precisa ser desabilitada/habilitada? As configurações foram redefinidas para os padrões de fábrica durante a substituição, obviamente.

boot
  • 1 respostas
  • 38 Views
Martin Hope
TheYokai
Asked: 2024-11-10 08:09:44 +0800 CST

Restaurar a árvore raiz de uma unidade BTRFS que foi substituída erroneamente por 100 MB de armazenamento FAT

  • 5

Tenho uma unidade de 4 TB com um sistema de arquivos BTRFS (sem partição) que foi substituído erroneamente pelo instalador do Windows, que determinou que o espaço não estava sendo utilizado e que o usaria para alguma outra finalidade (recuperação?), colocando uma partição FAT de 100 MB sobre ele.

O problema é que todo o conteúdo da unidade está atualmente inacessível. Na maior parte, muitos dos meus arquivos realmente críticos têm backups no meu servidor doméstico, então o dano não é extraordinariamente avassalador, mas sempre há alguns arquivos desonestos que estão faltando no backup e que você só descobre quando olha para fazer o backup. Como resultado, tenho procurado alguma maneira de restaurar o sistema de arquivos ou talvez navegar por qualquer conteúdo que ainda esteja no disco.

Até agora, fiz o seguinte:

Eu executei btrfs rescue super-recovero que gera o seguinte:

$ sudo btrfs rescue super-recover -v /dev/sda
All Devices:
    Device: id = 1, name = /dev/sda

Before Recovering:
    [All good supers]:
        device name = /dev/sda
        superblock bytenr = 65536

        device name = /dev/sda
        superblock bytenr = 274877906944

    [All bad supers]:
        device name = /dev/sda
        superblock bytenr = 67108864
Make sure this is a btrfs disk otherwise the tool will destroy other fs, Are you sure? [y/N]: y
checksum verify failed on 25001984 wanted 0x00000000 found 0xb6bde3e4
checksum verify failed on 25001984 wanted 0x00000000 found 0xb6bde3e4
ERROR: cannot read chunk root
Failed to recover bad superblocks

Também tentei executar sudo btrfs rescue chunk-recover, mas o resultado também foi semelhante: não foi possível encontrar uma raiz de árvore válida.

Em seguida, usando os IDs acima, tentei restaurar o disco para um local de arquivo:

$ sudo btrfs restore -t 78515 -u 1 /dev/sda /tmp/a
No valid Btrfs found on /dev/sda
Could not open root, trying backup super
checksum verify failed on 25001984 wanted 0x00000000 found 0xb6bde3e4
checksum verify failed on 25001984 wanted 0x00000000 found 0xb6bde3e4
checksum verify failed on 25001984 wanted 0x00000000 found 0xb6bde3e4
bad tree block 25001984, bytenr mismatch, want=25001984, have=0
ERROR: cannot read chunk root
Could not open root, trying backup super

Problema semelhante: não há mais uma raiz válida devido aos 100 MB de FAT!

Por fim, conheço a opção de navegar pelos arquivos testdisk, mas parece que não consigo navegar por todos os arquivos restantes de um sistema de arquivos BTRFS: a única opção é clonar uma imagem do disco.

Alguém tem alguma solução potencial para navegar por arquivos individuais em um sistema de arquivos BTRFS inválido ou talvez recriar parcialmente a raiz? Eu não preciso restaurar o sistema de arquivos inteiro, na verdade, o ideal seria conseguir obter quantos arquivos de um subvolume (por exemplo @pictures) ainda forem "válidos" o suficiente para ser um arquivo real. Existe uma maneira de recriar a árvore raiz do sistema de arquivos BTRFS para tentar recuperar o máximo de arquivos no disco?

Quando faço isso, consigo ver uma tabela de nomes de arquivos, sudo strings /dev/sda | lesso que parece indicar que posso encontrar alguns dados associados a esses arquivos mais abaixo no disco, mas não tenho a mínima ideia de como verificar isso.

data-recovery
  • 1 respostas
  • 27 Views
Martin Hope
Harish
Asked: 2024-11-10 01:52:49 +0800 CST

Fazer um servidor nginx funcionar tanto em um domínio quanto em um subdomínio (um deles estático e o outro servido por um aplicativo Next JS)

  • 6

Tenho um VPS Digitalocean Ubuntu 24.10 e quero hospedar dois sites usando Nginx.

Um é website-name.comonde desejo hospedar uma exportação estática de um site Next JS cujo conteúdo copiei para a /var/www/outpasta e o outro é subdomain.website-name.comonde desejo hospedar um aplicativo Next JS que está sendo executado em localhost:3000.

Na pasta /etc/nginx/sites-available/, tenho um arquivo de configuração chamado myappque atua como um proxy para localhost:3000. Este arquivo de configuração é o seguinte:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;

server {
    listen 80;
    server_name subdomain.website-name.com;

    # Redirect all HTTP requests to HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name subdomain.website-name.com;

    ssl_certificate /etc/letsencrypt/live/website-name.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/website-name.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    # Enable rate limiting
    limit_req zone=mylimit burst=20 nodelay;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

        # Disable buffering for streaming support
        proxy_buffering off;
        proxy_set_header X-Accel-Buffering no;
    }
}

Tenho outro arquivo de configuração na pasta /etc/nginx/sites-available/chamado website-name.compara servir o site estático cujo conteúdo está disponível na /var/www/outpasta. Este arquivo de configuração é o seguinte:

server {
  listen 80;
  server_name website-name.com;

  root /var/www/out;

  location / {
      try_files $uri $uri.html $uri/ =404;
  }

  error_page 404 /404.html;
  location = /404.html {
      internal;
  }
}

Peguei essa configuração da página de documentação do Next JS.

Em vez de obter o site estático na URL https://website-name.com, estou executando o aplicativo Next JS em localhost:3000.

Na url https://subdomain.website-name.comestou obtendo o aplicativo Next JS corretamente, conforme necessário.

Não consigo descobrir o que está errado. Alguém pode ajudar?

Nota: Eu costumava certbotexpandir o certificado para website-name.comtambém subdomain.website-name.com(eu segui a resposta desta pergunta para isso). Eu também criei um Aregistro para subdomain.website-name.com.

nginx
  • 1 respostas
  • 15 Views
Martin Hope
Zeinab Abbasimazar
Asked: 2024-11-10 01:18:03 +0800 CST

O Ubuntu 18.0.4 falha ao iniciar após reinicialização manual

  • 4

Reiniciei meu Ubuntu manualmente, mas ele não está iniciando novamente. Ele continua no logotipo do Ubuntu:

Eu tentei o mod de recuperação e executei a verificação do disco de arquivo. Então, escolhi retomar para continuar a inicialização normal. Mas acabei aqui:

tempo limite de conexão de recarga do deamon

E não continuou em lugar nenhum. Então, tenho que desligar o laptop com o botão de energia. Agora, esta é a tela:

falha de reinicialização

ubuntu
  • 1 respostas
  • 18 Views
Martin Hope
Eric B
Asked: 2024-11-09 21:26:16 +0800 CST

Como verificar se um pacote desatualizado inclui correções de segurança retroportadas de uma versão mais recente?

  • 7

Quero hospedar um servidor web no meu Raspberry Pi 1B na minha rede doméstica, então quero ter certeza de que o software está atualizado para minimizar o risco de segurança. Eu estava pensando em usar o lighttpd e consegui executá-lo, mas só consegui obter a versão 1.4.69 do apt quando a versão mais recente é 1.4.76. Olhando os changelogs, parece haver alguns patches de vulnerabilidade que eu gostaria de ter na minha instalação.

Verifiquei várias fontes e todas parecem concordar que você não pode simplesmente instalar uma nova versão do apt, porque elas precisam ser adicionadas manualmente ao apt do upstream. Eu poderia compilar a partir da fonte, mas seria bom evitar isso. Mas então me deparei com uma resposta para esta pergunta https://askubuntu.com/questions/970267/how-to-upgrade-lighttpd-1-4-33-to-1-4-47-on-ubuntu-14-04 que dizia que você poderia verificar se os patches de segurança são retroportados para a versão mais antiga disponível no apt.

Como posso verificar se as correções de segurança das versões entre 1.4.69 e 1.4.76 foram adicionadas à versão 1.4.69 instalada do apt?

Outras informações potencialmente relacionadas

Linux raspberrypi 6.6.51+rpt-rpi-v6 #1 Raspbian 1:6.6.51-1+rpt3 (2024-10-08) armv6l GNU/Linux

/etc/apt/sources.list:

deb [ arch=armhf ] http://raspbian.raspberrypi.com/raspbian/ bookworm main contrib non-free rpi
pi@raspberrypi:~ $ apt show lighttpd
Package: lighttpd
Version: 1.4.69-1
Priority: optional
Section: httpd
Maintainer: Debian lighttpd maintainers <[email protected]>
Installed-Size: 814 kB
Provides: httpd, httpd-cgi, lighttpd-mod-accesslog, lighttpd-mod-ajp13, lighttpd-mod-auth, lighttpd-mod-authn-file, lighttpd-mod-cgi, lighttpd-mod-dirlisting, lighttpd-mod-extforward, lighttpd-mod-proxy, lighttpd-mod-rrdtool, lighttpd-mod-sockproxy, lighttpd-mod-ssi, lighttpd-mod-status, lighttpd-mod-userdir, lighttpd-mod-vhostdb, lighttpd-mod-wstunnel
Pre-Depends: init-system-helpers (>= 1.54~)
Depends: libc6 (>= 2.36), libcrypt1 (>= 1:4.1.0), libnettle8, libpcre2-8-0 (>= 10.22), libxxhash0 (>= 0.6.5), media-types | mime-support, systemd-sysv | lsb-base
Recommends: spawn-fcgi, perl:any, lighttpd-mod-deflate, lighttpd-mod-openssl
Suggests: openssl, php-cgi, php-fpm (>= 2:7.4), apache2-utils, lighttpd-doc, lighttpd-mod-webdav, lighttpd-modules-dbi, lighttpd-modules-lua
Conflicts: lighttpd-mod-geoip, lighttpd-mod-trigger-b4-dl
Homepage: https://www.lighttpd.net/
Download-Size: 306 kB
APT-Sources: http://raspbian.raspberrypi.com/raspbian bookworm/main armhf Packages
Description: fast webserver with minimal memory footprint
 lighttpd is a small webserver and fast webserver developed with
 security in mind and a lot of features.
 It has support for
   * CGI, FastCGI and SSI
   * virtual hosts
   * URL rewriting
   * authentication (plain files, htpasswd, LDAP)
   * transparent content compression
   * conditional configuration
   * HTTP proxying
 and configuration is straight-forward and easy.
apt
  • 1 respostas
  • 90 Views
Martin Hope
SekstusEmpiryk
Asked: 2024-11-09 18:36:03 +0800 CST

Descarga automática de fluxo ao ler a entrada

  • 7

Li em Programação Avançada em Ambiente Unix isto:

O buffer de linha vem com duas ressalvas. Primeiro, o tamanho do buffer que a biblioteca de E/S padrão usa para coletar cada linha é fixo, então a E/S pode ocorrer se preenchermos esse buffer antes de escrever uma nova linha. Segundo, sempre que a entrada for solicitada por meio da biblioteca de E/S padrão de (a) um fluxo sem buffer ou (b) um fluxo com buffer de linha (que requer que os dados sejam solicitados do kernel), todos os fluxos de saída com buffer de linha são liberados. O motivo do qualificador em (b) é que os dados solicitados podem já estar no buffer, o que não requer que os dados sejam lidos do kernel. Obviamente, qualquer entrada de um fluxo sem buffer, item (a), requer que os dados sejam obtidos do kernel.

https://www.gnu.org/software/libc/manual/html_node/Flushing-Buffers.html afirma:

Liberar a saída em um fluxo em buffer significa transmitir todos os caracteres acumulados para o arquivo. Há muitas circunstâncias em que a saída em buffer em um fluxo é liberada automaticamente:

Quando você tenta fazer uma saída e o buffer de saída está cheio.

Quando o fluxo é fechado. Veja Fechando Fluxos.

Quando o programa termina chamando exit. Veja Término Normal. Quando uma nova linha é escrita, se o fluxo for bufferizado por linha.

Sempre que uma operação de entrada em qualquer fluxo realmente lê dados de seu arquivo.

Então eu escrevi um programa para testar isso:

#include <stdio.h>
#include <unistd.h>

int
main()
{
    printf("Hello");
    FILE *fp = fopen("hugefile", "r");
    if (fp == NULL) {
        fprintf(stderr, "Cannot open file\n");
        return -1;
    }
    setvbuf(fp, NULL, _IONBF, 0);
    sleep(2);
    char buf[10];

    while (fread(buf, sizeof(char), 10, fp) == 10) {
    }

    if (ferror(fp)) {
        fprintf(stderr, "Read error\n");
        return -1;
    }; // I expect "Hello" to appear on a screen but it doesn't
    fclose(fp);
    sleep(50);
}

Mas fread() não dispara o flashing da saída. Estou esquecendo de algo?

Não sei o que pode ser relevante aqui, mas eu uso:

gcc versão 14.2.1 20240910

glibc 2.40+r16+gaa533d58ff-2

c
  • 1 respostas
  • 74 Views
Martin Hope
ZacWolf
Asked: 2024-11-09 06:01:57 +0800 CST

Tentando analisar a saída do comando "lastb" via awk, mas quando o campo userID está em branco, minhas variáveis ​​são descartadas

  • 6

Estou tentando extrair a data e o endereço IP da saída delastb

Estou usando:lastb | awk '{print $5,$6,$7,$3}'

O problema é que às vezes a primeira coluna (userID) lastbfica em branco:

Exemplo de dados:

wpsadmin ssh:notty 213.109.202.127 Ter 1 Out 12:07 - 12:07 (00:00)
         ssh:notty 8.219.222.66 Terça, 1º de outubro, 11h48 - 11h48 (00h00)
quser ssh:notty 213.109.202.127 Terça, 1º de outubro, 11h03 - 11h03 (00h00)
udatabas ssh:notty 139.19.117.130 Ter Out 1 10:34 - 10:34 (00:00)
Admin ssh:notty 213.109.202.127 Terça, 1º de outubro, 09:58 - 09:58 (00:00)
         ssh:notty 79.110.62.93 Terça, 1º de outubro, 09:40 - 09:40 (00:00)
udatabas ssh:notty 139.19.117.130 Ter Out 1 09:34 - 09:34 (00:00)

...o que desequilibra minhas variáveis ​​awk em uma.

Então, usar: lastb | awk '{print $5,$6,$7,$3}'para o conjunto de dados acima me dá:

1 de outubro 12:07 213.109.202.127
1 11:48 - Ter
1 de outubro 11:03 213.109.202.127
1 de outubro 10:34 139.19.117.130
1 de outubro 09:58 213.109.202.127
1 09:40 - Ter
1 de outubro 09:34 139.19.117.130

Como retifico isso? Obrigado!

bash
  • 5 respostas
  • 111 Views
Martin Hope
wobtax
Asked: 2024-11-09 03:01:33 +0800 CST

Sway: waybar não inicia, aplicativos GTK demoram mais de 20 segundos para iniciar

  • 6

Tenho observado um comportamento incomum do Sway no Fedora 39 (que também tem o GNOME instalado, e preciso manter o GNOME instalado). O desktop inicia, mas qualquer aplicativo GTK que eu inicio não abre até que cerca de 25 segundos tenham passado. Além disso, minha barra de caminho nunca aparece até que eu recarregue a configuração após os 25 segundos terem passado.

Como posso evitar esse atraso?

Respostas que vi e tentei:

  • Desinstale xdg-desktop-portalexdg-desktop-portal-gnome (acontece que essas são dependências do GNOME, então não é uma opção).
  • DefinirGTK_USE_PORTAL=0 .
  • DefinirWAYLAND_DISPLAY=wayland-1 .
  • Execute exec systemctl --user import-environmentna minha configuração do Sway (tentei colocar isso antes e depois da waybarlinha).
  • Comente a pam_gnome_keyring.solinha em um arquivo em /etc/pam.d(no meu caso, /etc/pam.d/gdm-autologin).
  • Exporte um determinado conjunto de variáveis ​​por nome ( WAYLAND_DISPLAY, DISPLAY, XDG_CURRENT_DESKTOP, etc.), para que systemd e dbus possam usá-las.

Infelizmente, o atraso persistiu após uma reinicialização com cada uma dessas mudanças. Estou postando isso porque finalmente encontrei uma solução, mas uma explicação seria bem-vinda (eu realmente não entendi a solução).

fedora
  • 1 respostas
  • 36 Views
Martin Hope
jsx97
Asked: 2024-11-09 00:39:24 +0800 CST

Faça o cURL retomar downloads interrompidos usando o loop 'until'

  • 5

Aqui está uma solução sobre como fazer o cURL retomar automaticamente downloads interrompidos, da postagem do blog de 2013 de Juan Nunez-Iglesias :

export ec=18; while [ $ec -eq 18 ]; do curl -O -C - http://site.xyz/file.zip; export ec=$?; done

Foi postado diversas vezes aqui e no Stack Overflow, tanto na versão original quanto com pequenas alterações dentro do whileloop.

As mudanças dentro do whileloop foram introduzidas por pessoas diferentes para tornar o script mais robusto.

  • "O código de saída que o curl chucks exibe quando um download é interrompido é 18, e $?fornece o código de saída do último comando no bash. Então, enquanto o código de saída for 18, continue tentando baixar o arquivo, mantendo o nome do arquivo ( -O) e continuando de onde o download anterior parou ( -C)." - Juan Nunez-Iglesias
  • "Como Jan aponta nos comentários, dependendo do que está errado com o download, seu código de erro pode ser diferente. Basta alterar 18 para qualquer erro que você esteja vendo para fazê-lo funcionar para você! (Se você estiver se sentindo aventureiro, você pode alterar a condição para while [ $ec -ne 0 ], mas isso parece usar um except simples em Python, o que é ruim. ;)" - Juan Nunez-Iglesias
  • "No meu caso, o curl sai com códigos diferentes, então eu verifico o código de sucesso: while [ $ec -ni 0 ]" - Ilya Belsky, aqui

Em março, Helder Magalhães sugeriu substituir o whileloop na versão original de Juan por until:

Esta solução pode ser ainda mais simplificada usando untilunstead. Veja thread relacionada .

Embora eu não seja muito bom em usar cURL ou scripts de shell, eu tentaria escrevê-los eu mesmo, mas o problema de escrevê-los eu mesmo não é o script em si, mas a falta de compreensão de como testá-lo corretamente.

Alguém poderia mostrar como implementar a ideia do Helder? E isso realmente torna o script mais robusto?

Eu uso Zsh.

zsh
  • 1 respostas
  • 23 Views
Martin Hope
skyking
Asked: 2024-11-08 20:14:53 +0800 CST

Como faço para "voltar" após instalar um pacote criado localmente

  • 9

Procurei instruções sobre como baixar o pacote fonte do Debian, compilá-lo e então instalar o(s) arquivo(s) deb resultante(s), mas o que sinto que está faltando é uma instrução sobre como reverter isso e voltar a usar o(s) pacote(s) oficial(ais) (binário(s), conforme obtido do repositório Debian.

debian
  • 1 respostas
  • 164 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