Você pode fazer assim:
root@host# lastlog -b Num_Days_Since_Last_Login | egrep -v "^Username|Never logged in" | awk '{print $1}' | xargs -i userdel {}
Onde Num_Days_Since_Last_Login é um número inteiro de dias desde o último login ...
Eu sou o usuário root e estou configurando um menu para outro usuário usar. Este outro usuário só receberá este menu.
Existem duas opções que estão interligadas: a primeira opção é pesquisar os usuários. O código que eu tenho é:
last | awk '{print $1,$4,$5,$6,$7} '
Eu verifiquei este código e ele funciona, ele mostra os nomes de usuários e o dia em que eles fizeram o login pela última vez.
Para a segunda opção: desejo definir uma data e excluir usuários que não estão ativos desde essa data, usando a saída do comando acima.
Estou usando o editor de texto do Linux Mint e Vim.
Você pode fazer assim:
root@host# lastlog -b Num_Days_Since_Last_Login | egrep -v "^Username|Never logged in" | awk '{print $1}' | xargs -i userdel {}
Onde Num_Days_Since_Last_Login é um número inteiro de dias desde o último login ...
Uma solução completa:
#!/bin/bash
maxdate=$(date -d "$1" +%s) || exit 1
daysdate=$((($(date +%s)-maxdate)/(3600*24)))
LANG=C lastlog -b $daysdate -u 1000- |
awk 'NR>1{print $1}' |
xargs -n1 echo userdel
Teste-o e remova echo
para fazê-lo forReal ™.
Exemplo de uso:
./script.sh 'Fri Dec 5 17:00:06 CET 2013'