Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
FFB - Aumentando o desempenho do Debian
22/06/2006, 00:17
Resposta: #1
FFB - Aumentando o desempenho do Debian
Objetivos: Melhorar o desempenho do Debian para usuários domésticos, diminuindo o tempo de boot, desligamento e carregamento de programas. Primeiramente usar shell-script de uma maneira bem intuitiva para fazer um script com esses "truques". Após um tempo, um programa com uma interface gráfica.

O que é necessário? Pessoas que tenham experiência com shell-script, dicas para aumentar o desempenho e também pessoas que possam testar e dar a opinião sobre o script.

Versão Atual: 0.01 alfa

Download:

Salve esse arquivo 0.01 alfa e execute de um terminal.

Status:

22/06/2006 00:12: Tenho as primeiras funções e necessito de que alguém com experiência em shell-script abra um arquivo e adicione um comando em um linha que pode variar de lugar (alguém tem alguma dica para fazer isso?). No momento estou utilizando os seguintes "truques" para melhorar o desempenho: InitNG, Preload, Atualização de alguns scripts de inicialização e prelink. Procura mais dicas. Em breve coloco a primeira versão do script (é só alguem me ajudar com aquele probleminha Lingua).

24/06/2006 17:00: Primeira versão. Por favor, reportem bugs, façam críticas e me mandem sugestões Alegre
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
22/06/2006, 01:36
Resposta: #2
 
Olá Fernando,

É preciso saber como se dará esta inserção.

O comando varia de posição dentro da linha ?
Haverá formas de identificar a linha que será alterada ?

Eu tenho um script pronto que lê o arquivo e joga as linhas dentro de variáveis que podem ser avaliadas e alteradas recompondo, ao final, o arquivo modificado.
Acho que, com algumas adaptações resolverá a questão.

Aqui está a parte de leitura do arquivo. Dá uma olhada e, se tiver utilidade no projeto, daremos continuidade.

Citar:#!/bin/bash
buster="1"
IFS='
'
for LINHAS in `cat arquivo`
do
vars="linha[$buster]=\"$LINHAS\""
eval $vars
buster=`expr $buster + 1`
done
echo ${linha[1]}

Regras de Conduta

As coisas que ocultamos de nós mesmos se transformam em monstros que nos devorarão depois.
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
22/06/2006, 08:26
Resposta: #3
 
ljnunes,

Essa alteração é no arquivo de configuração do grub e tem que ser feito na linha kernel logo abaixo da imagem do kernel que a pessoa está usando (uname -r)
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
22/06/2006, 22:06
Resposta: #4
 
Encontrei alguns problemas ao executar este script no arquivo de configuração, pois ele já possui variáveis. Vou procurar uma alternativa viável e, assim que tiver algum progresso, te dou um retorno.

Regras de Conduta

As coisas que ocultamos de nós mesmos se transformam em monstros que nos devorarão depois.
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
24/06/2006, 17:03
Resposta: #5
 
Primeira versão...
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
29/06/2006, 13:32
Resposta: #6
 
Dica, quando for feita a pergunta do sim ou nao deixar o S marcado
tipo [S]im [n]ao
e nos wget colocar -c para caso de algum problema baixando e ele for tentar de novo nao gerar outro arquivo com .1 .2 que o wget gera caso ja tenha o arquivo.

humm outra coisa que pode ser feita eh nos apt-get colocar -y para que ele nao pergunte mais nada para o usuario.

eu estava fazendo estas mudanças mas nao sei se realizo e mando ou como podemos ajudar nisso.

o que o script pode fazer tambem é aquilo Fernando que acho que voce que falou de mudar no init.d/rc de colocar os caras em background

bom no que eu puder ajudar eu vou dar uma mão !!

até
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
29/06/2006, 13:33
Resposta: #7
 
Dica, quando for feita a pergunta do sim ou nao deixar o S marcado
tipo [S]im [n]ao
e nos wget colocar -c para caso de algum problema baixando e ele for tentar de novo nao gerar outro arquivo com .1 .2 que o wget gera caso ja tenha o arquivo.

humm outra coisa que pode ser feita eh nos apt-get colocar -y para que ele nao pergunte mais nada para o usuario.

eu estava fazendo estas mudanças mas nao sei se realizo e mando ou como podemos ajudar nisso.

o que o script pode fazer tambem é aquilo Fernando que acho que voce que falou de mudar no init.d/rc de colocar os caras em background

bom no que eu puder ajudar eu vou dar uma mão !!

até
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
29/06/2006, 15:18
Resposta: #8
 
gustavodp Escreveu:Dica, quando for feita a pergunta do sim ou nao deixar o S marcado
tipo [S]im [n]ao
e nos wget colocar -c para caso de algum problema baixando e ele for tentar de novo nao gerar outro arquivo com .1 .2 que o wget gera caso ja tenha o arquivo.

Bem observado! Vou arrumar isso.

gustavodp Escreveu:humm outra coisa que pode ser feita eh nos apt-get colocar -y para que ele nao pergunte mais nada para o usuario.

Pensei nisso no começo mas achei melhor não porque as vezes a pessoa pode estar com algum erro nas sources.list/apt-get e remover algo que não deveria ser removido.


gustavodp Escreveu:eu estava fazendo estas mudanças mas nao sei se realizo e mando ou como podemos ajudar nisso.

Você pode me enviar por M.P. Alegre


gustavodp Escreveu:o que o script pode fazer tambem é aquilo Fernando que acho que voce que falou de mudar no init.d/rc de colocar os caras em background

Na próxima versão ele vai ter isso e muito mais Piscada


gustavodp Escreveu:bom no que eu puder ajudar eu vou dar uma mão !!

Obrigado!!!!
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
29/06/2006, 15:37
Resposta: #9
 
vou ver se hoje crio o de mudanca do "RC" verificando se eh sarge ou eath

Até
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
20/07/2006, 21:01
Resposta: #10
 
Olá amigos,

depois de quebrar um pouco a cabeça, descobri um modo de adicionar a linha ao arquivo. O script pode ser melhorado e precisa ser adaptado ao FFB.

Obs.: A linha referente ao arquivo de configuração do Grub precisa ser alterada, pois não conheço o caminho.

Citar:#!/bin/bash
#
# Remove o arquivo de saída caso exista
if [ -e saida.txt ]
then
rm saida.txt
fi
#
# Usuário escolhe o tipo de boot manager
boot () {
boot_manager=$( dialog --stdout --menu 'Qual Gerenciador de Boot você utiliza?' 0 0 0 Lilo "" Grub "" )
[ $? -eq 1 ] && echo 'Botão CANCELAR apertado.' && sleep 3 && exit
if [ "$boot_manager" = "Lilo" ]
then
caminho="/etc/lilo.conf"
elif [ "$boot_manager" = "Grub" ]
then
#
# Não sei o caminho do arquivo de configuração do Grub.
# É preciso alterar aqui.
caminho="Alterar aqui"

fi
echo "Você escolheu o $boot_manager"
echo "O caminho a ser utilizado é $caminho"
}
#
# Lê as linhas do arquivo e joga nas variáveis
pega_linhas() {
buster="1"
IFS='
'
for LINHA in `cat $caminho`
do
vars="arq_linhas[$buster]='$LINHA'"
if [ $vars != " " ]
then
eval "$vars"
fi
buster=`expr $buster + 1`
done
ultima="$buster"
}
#
# Idenfica onde a linha será adicionada e o fim do arquivo.
identifica-linha() {
buster="1"
IFS='
'
for LINHAS in `cat $caminho`
do
varis="arq_linhas[$buster]='$LINHAS'"
echo ${arq_linhas[buster]} | grep `uname -r` >> temp.txt
kern=`cat temp.txt`
if [ "$kern" != "" ]
then
linha="$buster"
else
buster=`expr $buster + 1`
fi
done
echo "A linha $buster é o ponto de inserção da nova linha."
echo "A linha $ultima é a última linha do arquivo."
if [ -e temp.txt ]
then
rm temp.txt
fi
}
#
# Organiza as variáveis para recompor o arquivo.
recompoe_linhas() {
buster=1
until [ "$buster" -gt "$linha" ]
do
nova_linha[$buster]=${arq_linhas[buster]}
buster=`expr $buster + 1`
done

# Linha a ser adicionado ao arquivo.
nova_linha[$buster]=' init=/sbin/initng'
linha=`expr $buster + 1`
#
until [ "$linha" -gt "$ultima" ]
do
nova_linha[$linha]=${arq_linhas[buster]}
linha=`expr $linha + 1`
buster=`expr $buster + 1`
done
}
#
# Escreve o arquivo novo.
escreve_arquivo(){
buster="1"
until [ "$buster" -gt "$ultima" ]
do
echo "${nova_linha[buster]}" >> saida.txt
buster=`expr $buster + 1`
done
}
#
boot &&
pega_linhas &&
identifica-linha &&
recompoe_linhas &&
escreve_arquivo

Regras de Conduta

As coisas que ocultamos de nós mesmos se transformam em monstros que nos devorarão depois.
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
27/09/2006, 03:19
Resposta: #11
Modifica¢ão! Semi 0.02?
Primeiro peguem o arquivo para ver e seguir esse texto abaixo.

Código:
wget http://umgeher.org/ffb

Modifiquei muito a programa¢ão do script.

* Retirei os acentos do script.
Não é todo mundo que usa ISO e nem todo mundo usa UTF-8. Nisso é melhor colocar sem nada mesmo.

* Modifiquei o check de root para fun¢ão.
Só rescrevi o check antigo para uma fun¢ão. Isso melhora o código, facilita a codifica¢ão futura e ajuda a prevenir/prever erros.

* Identei as fun¢ões.
Não é apenas por "beleza". Existem shells que não sabem "identificar" uma fun¢ão usando apenas "nome()".

* Modifiquei o cabe¢alho impresso do script.
Nada de mais, apenas mudei para um formato menor e um pouco mais chamativo.

* Organizei as fun¢õoes em ordem alfabética.
Fica mais fácil em uma codifica¢ão achar trechos de código.

* Criei a fun¢ão "checkOpcao".
Com ela fica pronto padrões de op¢ões para a fun¢ão "assistente".

* Modifiquei a fun¢ão "sair".
Facilita a codifica¢ão para a saida do programa.

* Transformei em apenas uma fun¢ão "assistente".
Coloquei tudo em uma fun¢ão para o código ficar melhor, facilitar a leitura do mesmo e edi¢ão. Assim todo o processo é em um único lugar. Usando a fun¢ão "checkOpcao" como "saida". Também mudei o nome para ficar mais curto, de "assistente" para "astt".

* Criei a fun¢ão "erro".
Fazendo assim um padrão de erros que o script "pode aceitar" e agilizando a codifica¢ão.

* Criei a fun¢ão "main".
Com ela o processo de o que o script tem de fazer, como e quando fica mais fácil e limpo de se ler e codificar. Diminuindo erros ao longo do script.

* Retirei comandos "vazios".
O script serve para agilizar e ajudar o user/admin da máquina certo? Então para que comando como "sleep 5" e "echo" sem fun¢ão nenhuma? Sem eles o script não demora para fazer o que tem de fazer e a tela fica mais "limpa".

* Coloquei tags para o "wget".
Fiz com que o "wget" continue o download caso já tenha iniciado (tag: -c) e retirei o processo de download (tag: -q). Pelo simples motivo de não encher a tela do user/admin. Não faz diferen¢a nenhuma. Eu pessoalmente prefiro ver o processo, mas coloquei por questão de "beleza".

* Coloquei tag para o "apt-get".
Coloquei a tag "-y" no "apt-get" para ele auto instalar o pacote pedido. Facilitando o user/admin de não ter que confirmar algo que já confirmou no script.

* Criei um check dos arquivos abaixados.
Não está completo. Não tive tempo para ver quantos kb tem cada arquivo, então fiz apenas um loop para saber se o arquivo já está na pasta. Caso não esteja fa¢a o download. Mas isso não é o bastante... Então se alguem quiser colocar um if conferindo o tamanho usando um ls -l e limpando com cut e grep ou outra solu¢ão, fa¢a! Se quiserem me mande o tamanho exato de cada arquivo e já coloco ou fica para minha proxima folga...

* Criei a fun¢ão "update".
A fun¢ão "update" busca em um arquivo em um site (http) por um arquivo que contém a versão mais nova e o endere¢o do script. Caso a versão seja diferente ele automáticamente muda e apaga a "velha". Ela está completa só falta configurar com um local para buscar o arquivo, não configurei porque não tenho acesso ao server do forumdebian, não coloquei no meu por não pedir autoriza¢ão de ninguém, fiz essas modifica¢ões entre 2:20am até as 3:00am. O Fernando não estava no irc e come¢ei a escrever esse texto sem arrumar colocar nada lá. Caso queria ver o funcionamento já da fun¢ão, pegue um script meu (http://umgeher.org) e use a op¢ão update dele.

Foi isso que modifiquei. Não tive tempo de testar se está tudo roando normal.
Tomare que entre como 0.02! Sorrisão

Umgeher Taborda <[email protected]>
http://changelog.umgeher.mitgnu.com
irc: #mitgnu #freebsd #pypy (irc.freenode.net)
jid: [email protected]
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
16/10/2006, 15:35
Resposta: #12
 
umgeher,

Como estou sem tempo para manter esse projeto, vou passar aqui o que iria ser a versão 0.2. Se você puder adapte os novos programas ao seu script e remova o initng (pois ele ainda não funciona no Debian corretamente).

Aqui está http://arquivos.forumdebian.com.br/ffb/ff2a.sh
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS