O guia de atualização do Debian 12 recomenda limpar pacotes obsoletos com o comando:
apt purge '~o'
Qual é a diferença entre this e apt --purge autoremove
?
Tenho o seguinte arquivo do qual quero extrair apenas Removed '2022-01-30_01-00-05'
, no final.
Removing '2022-01-30_01-00-05'...
0.46% complete (00:03:45 remaining)^M 5.49% complete (00:00:17 remaining)^M 24.90% complete (00:00:06 remaining)^M 60.56% complete (00:00:01 remaining)^M 82.12% complete (00:00:00 remaining)^M 82.39% complete (00:00:01 remaining)^M 84.24% complete (00:00:01 remaining)^M 86.48% complete (00:00:01 remaining)^M 88.58% complete (00:00:01 remaining)^M 89.66% complete (00:00:01 remaining)^M101.08% complete (00:00:00 remaining)^M104.62% complete (00:00:00 remaining)^M ^MRemoved '2022-01-30_01-00-05'
Já tentei dos2unix
mas não funcionou.
Eu tentei essas variações, abaixo, mas quando eu less output
ou elas não removem os ^M
caracteres, ou toda a linha é capturada:
tr -d $'\r' < /file | grep "Removed" > output
tr -d '^M' < /file | grep "Removed" > output
tr -d ^M < /file | grep "Removed" > output
sed 's/\r//g' < /file | grep "Removed" > output
Eu tenho um pequeno script que verifica se meu rsync
backup foi concluído e, em caso afirmativo, minha máquina dorme.
Isso está no WSL (Debian).
#!/bin/bash
# if rsync is running, then wait 5
while ps aux | grep -q -e "[r]s";
do
sleep 5
echo "script running..."
done
# sleep PC
psshutdown64.exe -d -t 0
Isso funciona bem ao iniciar a partir de uma janela WSL.
Se o script estiver em execução, ele espera e, quando eu encerro rsync
, a máquina dorme.
script running...
script running...
script running...
script running...
PsShutdown v2.53 - Shutdown, logoff and power manage local and remote systems
Copyright (C) 1999-2021 Mark Russinovich
Sysinternals - www.sysinternals.com
Estou tentando criar um atalho do Windows para iniciar o mesmo script.
Ao iniciar o atalho, o loop nunca sai.
Continua aparecendo script running...
sem dormir.
Eu tentei bash.exe -c
, wsl.exe
, debian.exe
e powershell.exe
para iniciar o script.
Nenhum funcionou.
Curiosamente, quando inicio o script por meio de uma janela cmd ou Powershell, ele funciona bem:
wsl sh sleep.sh
PsShutdown v2.53 - Shutdown, logoff and power manage local and remote systems
Copyright (C) 1999-2021 Mark Russinovich
Sysinternals - www.sysinternals.com
Mas falha se eu usar um atalho para iniciá-lo.
EDIT: o script é salvo em uma pasta dentro do Documents
. Mas o script é realmente executável e funciona bem no WSL.
Eu uso o rsync para fazer backup dos meus arquivos usando --link-dest
para sincronizar apenas as diferenças da última pasta de backup.
Existe alguma maneira que eu possa ver uma listagem de diretórios ordenada por data e restringindo-a a --max-depth=1
ou -d 1
?
Por exemplo, isso mostra a profundidade de um diretório:
$ du -h --max-depth=1
33G ./05-12-2021-16:00
4.7G ./05-12-2021-12:30
4.6G ./05-12-2021-11:30
11G ./06-12-2021-13:30
4.8G ./06-12-2021-02:00
19M ./06-12-2021-08:58
4.7G ./05-12-2021-21:00
938M ./05-12-2021-02:11
754M ./05-12-2021-19:00
32M ./06-12-2021-02:30
179M ./05-12-2021-13:30
172M ./05-12-2021-17:30
4.7G ./05-12-2021-22:00
752M ./05-12-2021-20:00
170M ./05-12-2021-17:00
4.7G ./06-12-2021-12:01
934M ./05-12-2021-12:00
38M ./05-12-2021-14:00
175M ./06-12-2021-12:31
34M ./05-12-2021-18:00
388M ./05-12-2021-16:30
42M ./06-12-2021-14:01
4.7G ./05-12-2021-00:54
756M ./06-12-2021-11:33
173M ./06-12-2021-00:31
4.5G ./06-12-2021-15:31
31M ./06-12-2021-00:00
1007M ./05-12-2021-23:01
762M ./05-12-2021-22:30
31M ./05-12-2021-21:30
765M ./06-12-2021-15:01
214M ./05-12-2021-10:44
32M ./06-12-2021-01:30
33M ./06-12-2021-13:00
27M ./05-12-2021-15:00
166M ./05-12-2021-11:00
32M ./06-12-2021-01:01
176M ./05-12-2021-02:30
27M ./05-12-2021-15:30
30M ./05-12-2021-18:30
37M ./05-12-2021-13:00
31M ./05-12-2021-20:30
753M ./05-12-2021-23:30
752M ./05-12-2021-19:30
43M ./06-12-2021-14:30
38M ./05-12-2021-14:30
91G .
Usando a resposta aqui , ele classifica por tamanho, mas recua totalmente em cada diretório:
$ command ls -dt */ | while IFS= read -r dir; do du -sh "$dir"; done
33G 05-12-2021-00:54/
33G 05-12-2021-02:11/
33G 05-12-2021-02:30/
33G 05-12-2021-10:44/
33G 05-12-2021-11:00/
33G 05-12-2021-11:30/
33G 05-12-2021-12:00/
33G 05-12-2021-12:30/
33G 05-12-2021-13:00/
33G 05-12-2021-13:30/
33G 05-12-2021-14:00/
33G 05-12-2021-14:30/
33G 05-12-2021-15:00/
33G 05-12-2021-15:30/
33G 05-12-2021-16:00/
33G 05-12-2021-16:30/
33G 05-12-2021-17:00/
33G 05-12-2021-17:30/
33G 05-12-2021-18:00/
33G 05-12-2021-18:30/
33G 05-12-2021-19:00/
33G 05-12-2021-19:30/
33G 05-12-2021-20:00/
33G 05-12-2021-20:30/
33G 05-12-2021-21:00/
33G 05-12-2021-21:30/
33G 05-12-2021-22:00/
33G 05-12-2021-22:30/
33G 05-12-2021-23:01/
33G 05-12-2021-23:30/
33G 06-12-2021-00:00/
33G 06-12-2021-00:31/
33G 06-12-2021-01:01/
33G 06-12-2021-01:30/
33G 06-12-2021-02:00/
33G 06-12-2021-02:30/
23G 06-12-2021-08:58/
33G 06-12-2021-11:33/
33G 06-12-2021-12:01/
33G 06-12-2021-12:31/
33G 06-12-2021-13:00/
33G 06-12-2021-13:30/
33G 06-12-2021-14:01/
33G 06-12-2021-14:30/
33G 06-12-2021-15:01/
33G 06-12-2021-15:31/
33G 06-12-2021-16:03/
O que preciso, é a resposta a esta pergunta, mas ordenada por hora/data.
Eu dei uma olhada nas respostas aqui, mas não consigo ver nada útil:
https://superuser.com/questions/147027/how-can-i-sort-the-output-of-ls-by- last-modified-date
Existe algum sinalizador de comando du (uso de disco) que resume o tamanho de cada subdiretório
https://stackoverflow.com/questions/37272935/unix-command-size-of-directory-with-order- by-size
Como encontrar recursivamente a quantidade armazenada no diretório?
Estou usando o rsync para fazer backup de alguns arquivos:
rsync -PaSh --stats --delete -e "-i key -p XXXX" "/source/" [email protected]:/destination/ 2> output.txt | grep -e 'bytes received' -e 'total bytes' -e files -e 'total file size:' >> output.txt
porque são milhares de arquivos, só quero ver os erros e um resumo no final.
O comando acima gera isso:
rsync: delete_file: unlink(test/test.txt) failed: Permission denied (13)
Number of files: 12 (reg: 10, dir: 2)
Number of created files: 0
Number of regular files transferred: 0
sent 382 bytes received 137 bytes 41.52 bytes/sec
Desejo converter em letras maiúsculas apenas os erros (para chamar a atenção para eles) e deixar o resumo inalterado.
Então ficaria assim:
RSYNC: DELETE_FILE: UNLINK(TEST/TEST.TXT) FAILED: PERMISSION DENIED (13)
Number of files: 12 (reg: 10, dir: 2)
Number of created files: 0
Number of regular files transferred: 0
sent 382 bytes received 137 bytes 41.52 bytes/sec
Como posso conseguir isso?
Obrigado
Eu executo este comando para rsync alguns arquivos do Windows (Cygwin) para meu NAS local:
rsync -PaSq --delete -e "/cygdrive/C/cygwin64/bin/ssh -i keyfile -p XXXX" "/source/" [email protected]:/destination/
Agora quero destacar em vermelho todas as mensagens de erro. Com isso, quero dizer destacar os erros do rsync assim que ele se conectar e não os erros de conexão ssh.
Portanto, esta mensagem de erro de conexão ssh permanece inalterada:
ssh_exchange_identification: Connection closed by remote host
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.2]
Mas isso está destacado em vermelho:
rsync: delete_file: unlink(test/test.txt) failed: Permission denied (13)
Eu tentei o seguinte sem sorte. Qualquer ideia é apreciada.
rsync -PaSq --delete -e "/cygdrive/C/cygwin64/bin/ssh -i keyfile -p XXXX" "/source/" [email protected]:/destination/ | tput setaf 1; sed -n '/rsync:/p'
rsync -PaSq --delete -e "/cygdrive/C/cygwin64/bin/ssh -i keyfile -p XXXX" "/source/" [email protected]:/destination/ | egrep --color '.*rsync:.*|$'
rsync -PaSq --delete -e "/cygdrive/C/cygwin64/bin/ssh -i keyfile -p XXXX" "/source/" [email protected]:/destination/ | grep --color=auto '.*rsync:.*|$'