Talvez este não seja um caso muito comum, mas é possível que em algum momento na vida você queira que um certo comando seja seja executado com data e hora diferente da atual. Se você precisar disso e pensou em alterar a data de todo o seu sistema então saiba que há um jeito mais fácil de alterar a data apenas para uma sessão de terminal usando o comando “Faketime”, cujo nome já diz tudo.
Para usuários Debian/Ubuntu a instalação pode ser feita a partir do repositório oficial da sua distribuição usando o comando:
sudo apt-get install faketime
Usuários de outras distribuições talvez tenham a mesma sorte, mas não posso garantir isso.
Um vez instalado, o Faketime é um comando simples então não vou gastar muitas linhas o descrevendo. Se você precisar de informações adicionais lembre-se que o manual sempre está disponível através do comando:
man faketime
No manual você verá que é possível executar todo o seu processamento com o relógio congelado, ou com o tempo mais lento, mais rápido etc. Para usá-lo, de forma bem trivial, digite:
faketime 'horário' 'comando'
Se baseie pelos exemplos abaixo onde estou executando apenas o comando date para exibir a data modificada. Neles estou modificando a data da sessão para aquele comando especifico.
Data atual
wbraga@weldesk:~$ date
Sex Fev 19 20:23:49 BRST 2016
ontem
wbraga@weldesk:~$ faketime ‘yesterday’ date
Qui Fev 18 20:23:51 BRST 2016
Um ano atrás
wbraga@weldesk:~$ faketime ‘1 year ago’ date
Qui Fev 19 20:23:59 BRST 2015
Sábado passado
wbraga@weldesk:~$ faketime ‘last saturday’ date
Sáb Fev 13 00:00:00 BRST 2016
Próxima segunda-feira às 15:20
wbraga@weldesk:~$ faketime ‘next monday 15:20’ date
Seg Fev 22 15:20:00 BRT 2016
Observe as limitações, da libfaketime. Em alguns casos o jeito será realmente modificar a data do sistema, mas no geral esta ferramenta atende bem ao seu propósito.