• Dicas rápidas

    Data:2010.07.28 | CategoriaDicas | Tags: ,,

    Nessa ultima semana, descobri dois comandos que me foram bastante úteis. Esses são at e ionice. Abaixo segue um brief sobre ambos.

    At

    Esse comando é um agendador de tarefas. Semelhante ao cron, porém este não é cíclico. Agendar uma tarefa é fácil, basta informar ao at o arquivo que contém os comandos que serão executados e a hora e data. Talvez assim tenha ficado um pouco vago. Vou dar um exemplo. Crie um arquivo contendo o seguinte:

    #/bin/sh
    touch /tmp/teste-at
    

    Assumindo que o arquivo criado seja o ~/job.txt, vamos agendar a execução desse programa:

    at -f ~/job.txt 3pm tomorrow

    Se tudo ocorrer bem, aparecerá uma mensagem semelhante à essa:

    job 1 at Thu Jul 29 15:00:00 2010

    A notação de hora e data do at é um tanto flexível. Neste exemplo, poderíamos definir como 15:00 Jul 29 2010, ou então15:00 07/29/10. O resultado seria o mesmo. Para melhor detalhamento, consulte o manual do comando: man at. Para consultar os jobs que já foram agendados, use o comando primo atq, e para remover/cancelar um job, use o atrm fornecendo o id do job como primeiro argumento.

    ionice

    Assim como o comando nice, ele estabelece prioridades para os processos, mas este, se limita às operações de disco (I/O). Sua sintaxe é semelhante do seu primo nice. Dois argumentos eu enfatizo: -c e -p. O primeiro define o número da classe de prioridade e o segundo o número do PID que sofrerá a modificação.

    As classes podem ser:

    Idle: O processo só usará o processador para I/O se nenhum outro processo estiver usando.

    Best effort: O processo concorrerá o processador em níveis de prioridade que podem ser definidas entre 0 e 7, sendo 0 (zero) a maior prioridade. Para definir esse valor, use a opção -n. Vale lembrar que qualquer que seja o nível de prioridadem ele sempre passará na frente de processos da classe Idle.

    Real-time: Esse é para processos que realmente necessitem de atenção de I/O. Assim como a classe Best effort, esse é dividido em 8 níveis de prioridades e sua definição é idêntica. Vale lembrar que qualquer processo dessa classe, mesmo que seja prioridade 7, passará na frente de processos Best effort e Idle.

    O número das classes Idle, Best effort e Real-time são respectivamente 3, 2 e 1. 0 (zero) significa que não pertence a classe alguma. Caso queira já iniciar o processo com ionice definido, troque o argumento -p pelo comando em si, como por exemplo:

    ionice -c 3 cp ~/hugefile.img /tmp

    Ou seja, defina classe Idle para o processo que executará a cópia do arquivo hugefile.img.

    Para maior detalhamento, consulte o manual do comando, man ioince.