Sobre macaca, macaca-de-auditório, macacal, macacão, macacar, macacarecuia, macacaria, macaco, macacoa*, macaco-adufeiro, macaco-aranha, macaco-barrigudo, macaco-cabeludo, macaco-da-meia-noite, macaco-da-noite macaco-de-bando, macaco-de-cheiro, macaco-inglês, macaco-japonês, macaco-narigudo, macaco-patrona, macaco-prego, macaco-prego-do-peito-amarelo e TI.

segunda-feira, março 02, 2009

Script de Backup

Algumas pessoas me cobraram o grande período sem posts. Pois bem. Prometo postar com mais freqüência.

Para começar, um script que mostra todo o poder do applescript.

A idéia era fazer um script que compactasse uma pasta e enviasse o arquivo compactado para minha conta do gmail. Afinal existe lugar melhor para um backup do que na nuvem? Dei uma pesquisada na internet, achei algumas coisas interessantes juntei tudo e saiu o que você pode ver abaixo.

O que o script faz?

Verifica se a maquina tem conectividade com a internet, compacta uma pasta predefinida e envia o arquivo compactado para o gmail.

O Script


set pingresult to do shell script "ping -c 1 google.com;echo -n"
set paras to number of paragraphs in pingresult

if paras < 5 then display alert "Script de Backup"
message "Sem internet não tem backup!"
else set question to display dialog ¬
"Hora do Backup!" with title ¬
"Script de Backup"
buttons {"Agora não. Tô com pressa!", "Claro!"}
default button 2
set answer to button returned of question
if answer is equal to "Claro!" then
tell application "Mail" to activate
do shell script
"cd ~;mkdir transfer ;
tar -czf transfer/`date +%Y-%m-%d`.tgz #pasta-origem/*"
set p to do shell script "ls -t1 ~/transfer |head -1"
set target_file to "/Users/#seu-usuario/transfer/" & p

tell application "Mail"
set newMessage to make new outgoing message with properties ¬
{subject:"[BKP] " & target_file, content:"Backup automatico"}

tell newMessage
make new to recipient at beginning of to recipients with properties ¬
{address:"#seu-login@gmail.com"}

tell content
make new attachment with properties {file name:target_file} ¬
at after the last word of the last paragraph
end tell
end tell
send newMessage
display alert "Script de Backup" message
"Arquivo foi colocado na caixa de saida"
end tell

do shell script "cd ~;rm -rf transfer"
end if
end if




O que você precisa fazer para ele rodar?

1 - Cole ele no script editor.
2 - Substitua as tags começadas por # pelas suas informações.
3 - Se você não é usuário do mail.app (meu caso) configure sua conta do gmail desmarcando a opção de checar e-mail automaticamente. Também marque para limpar e-mails enviados quando sair.


Esse script é uma adaptação de coisas achadas aqui e aqui.

Até a próxima!