(→Script Backup.sh) |
(→Script Backup.sh) |
||
| Linha 255: | Linha 255: | ||
esta armazenado em /home/lupa/scripts/backup.sh | esta armazenado em /home/lupa/scripts/backup.sh | ||
<pre> | <pre> | ||
| + | |||
#!/bin/bash | #!/bin/bash | ||
INICIO=`date +%d-%m-%Y-%H:%M:%S` | INICIO=`date +%d-%m-%Y-%H:%M:%S` | ||
LOG=/var/log/backup/$INICIO.log | LOG=/var/log/backup/$INICIO.log | ||
| + | |||
| + | mount -a | ||
echo " " > $LOG | echo " " > $LOG | ||
echo " " >> $LOG | echo " " >> $LOG | ||
echo "+---------------+" >> $LOG | echo "+---------------+" >> $LOG | ||
| - | echo "| BACKUP DIARIO - Servidor Arquivos\ | + | echo "| BACKUP DIARIO - Servidor Arquivos\Aplicação | " >> $LOG |
echo "+---------------+" >> $LOG | echo "+---------------+" >> $LOG | ||
echo " " >> $LOG | echo " " >> $LOG | ||
echo "+--------------------------------------------------+" >> $LOG | echo "+--------------------------------------------------+" >> $LOG | ||
| - | echo "| | + | echo "| Sincronização Iniciada em : $INICIO |" >> $LOG |
echo "+--------------------------------------------------+" >> $LOG | echo "+--------------------------------------------------+" >> $LOG | ||
echo " " >> $LOG | echo " " >> $LOG | ||
| - | /usr/bin/rdiff-backup --force /mnt/SERVIDOR /backup/Servidor\ arquivos/Unidade\ D | + | echo "/mnt/SERVIDOR" >> $LOG |
| - | /usr/bin/rdiff-backup --force /mnt/SERVIDOR_C/xampp /backup/Servidor\ arquivos/Unidade\ C/xampp | + | /usr/bin/rdiff-backup --remove-older-than 30D --force /backup/Servidor\ arquivos/Unidade\ D >> $LOG |
| - | /usr/bin/rdiff-backup --force /mnt/SERVIDOR_C/SBSImob /backup/Servidor\ arquivos/Unidade\ C/SBSImob | + | /usr/bin/rdiff-backup --force --print-statistics /mnt/SERVIDOR /backup/Servidor\ arquivos/Unidade\ D >> $LOG |
| + | |||
| + | echo "/mnt/SERVIDOR_C/xampp" >> $LOG | ||
| + | /usr/bin/rdiff-backup --remove-older-than 30D --force /backup/Servidor\ arquivos/Unidade\ C/xampp >> $LOG | ||
| + | /usr/bin/rdiff-backup --force --print-statistics /mnt/SERVIDOR_C/xampp /backup/Servidor\ arquivos/Unidade\ C/xampp >> $LOG | ||
| + | |||
| + | echo "/mnt/SERVIDOR_C/SBSImob" >> $LOG | ||
| + | /usr/bin/rdiff-backup --remove-older-than 30D --force /backup/Servidor\ arquivos/Unidade\ C/SBSImob >> $LOG | ||
| + | /usr/bin/rdiff-backup --force --print-statistics /mnt/SERVIDOR_C/SBSImob /backup/Servidor\ arquivos/Unidade\ C/SBSImob >> $LOG | ||
| + | |||
#/usr/bin/rdiff-backup --force /mnt/SERVIDOR_C/Program\ Files/Microsoft\ SQL\ Server/MSSQL10_50.SQLEXPRESS/MSSQL /backup/Servidor\ arquivos/Unidade\ C/MSSQL | #/usr/bin/rdiff-backup --force /mnt/SERVIDOR_C/Program\ Files/Microsoft\ SQL\ Server/MSSQL10_50.SQLEXPRESS/MSSQL /backup/Servidor\ arquivos/Unidade\ C/MSSQL | ||
| - | /usr/bin/rdiff-backup --force /mnt/SERVIDOR_C//Hyper-V/Virtual\ Hard\ Disks/ /backup/Servidor\ arquivos/Unidade\ C/Sivim/ | + | #echo "/mnt/SERVIDOR_C//Hyper-V/Virtual\ Hard\ Disks/" >> $LOG |
| + | #/usr/bin/rdiff-backup --force --print-statistics /mnt/SERVIDOR_C//Hyper-V/Virtual\ Hard\ Disks/ /backup/Servidor\ arquivos/Unidade\ C/Sivim/ >> $LOG | ||
| + | |||
FINAL=`date +%d/%m/%Y-%H:%M:%S` | FINAL=`date +%d/%m/%Y-%H:%M:%S` | ||
| Linha 292: | Linha 306: | ||
/bin/df -h >> $LOG | /bin/df -h >> $LOG | ||
| - | #cat $LOG | mailx -s "Porto Seguro - Serv. Arquivos| | + | #cat $LOG | mailx -s "Porto Seguro - Serv. Arquivos|Aplicação" backup@lupainformatica.com.br |
| - | cat $LOG | sendemail -f | + | #cat $LOG | sendemail -f log@lupainformatica.com.br -t backup@lupainformatica.com.br -u "Porto Seguro - (arquivos/Aplicação)" -o tls=auto -s webmail.lupainformatica.com.br:587 -xu log@lupainformatica.com.br -xp lupa*2010! |
| - | + | cat $LOG | sendemail -f lupa@portoseguroimobiliaria.com.br -t backup@lupainformatica.com.br -u "Porto Seguro" -o tls=auto -s email-ssl.com.br:587 -xu lupa@portoseguroimobiliaria.com.br -xp "@Lupa123" | |
</pre> | </pre> | ||
Tabela de conteúdo |
Donos, sócios e gerentes:
Responsáveis por solicitações:
Razão Social: CNPJ:
Roteador NET WAN 192.168.0.11 LAN 192.168.1.10-100 NET_CA9B7E / BC644BCA9B7E Regras srv-app 192.168.1.230 porta externa 3838 porta interna 3389 srv-bkp 192.168.1.78 porta externa 6622 porta interna 22
192.168.1.120 acesso local - padrao de desbloquio -> desenhar um L
Vinculado ao contrato 48488 em nome da CNPJ Contato: IP 177.43.42.18 FNS301029EOO
Patrimônio: Atendimento:
Versão SO: Windows Server 2008 R2 Enterprise Nome na Rede: arquivos Hardware: Proc: Core i7-2600 3.4GHz Mem: 4GB / HD: 3 x 1TB IP LAN 192.168.1.230/24 Acesso Externo: rdesktop -u administrador -p lup4*1nf0rm4t1c4 portoseguro.ddns.net:3838 Acesso Interno: 192.168.1.230 anydesk 252 110 494 lupa*2010!
Duas Tarefas: Seg a Sab as 19:30 Backup dos arquivos do sistema para unidade G:(Local) Origem: C:\SBSImob C:\xampp Destino: G:\Sistemas em (C) Backup dos Arquivos Comparilhados para a Unidade G:(Bkp Local) Origem> F:\ Destino: G:\Disco (D)
script esta armazenado em c:\users\lupa\Scripts\espaco_hd.bat
# Lupa Tecnologia set Hostname=arquivos set Empresa=PortoSeguro set ip=192.168.1.230 set Unidade1=C: set Unidade2=F: set Unidade3=G: set remetente=lupa@portoseguroimobiliaria.com.br set destinatario=noc@lupainformatica.com.br set smtpPort=email-ssl.com.br:587 set senhaEmail=@Lupa123 set Alertaporcentolivre=10 for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='%Unidade1%'" get FreeSpace /format:value`) do set FreeSpace=%%x for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='%Unidade1%'" get Size /format:value`) do set Size=%%x set FreeMB=%FreeSpace:~0,-6% set SizeMB=%Size:~0,-6% set /a Percentage=100 * FreeMB / SizeMB echo C: is %Percentage% % free if %Percentage% GTR %Alertaporcentolivre% (@echo "OK") else (start C:\sendEmail.exe -f %remetente% -t %destinatario% -u "ALERTA %Empresa%" -m "%Empresa%\n%Hostname%\n%ip% \n \nUnidade %Unidade1% com %Percentage% Porcento livre \n \nLupa Tecnologia" -o tls=auto -s %smtpPort% -xu %remetente% -xp %senhaemail%) for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='%Unidade2%'" get FreeSpace /format:value`) do set FreeSpace=%%x for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='%Unidade2%'" get Size /format:value`) do set Size=%%x set FreeMB=%FreeSpace:~0,-6% set SizeMB=%Size:~0,-6% set /a Percentage=100 * FreeMB / SizeMB echo C: is %Percentage% % free if %Percentage% GTR %Alertaporcentolivre% (@echo "OK") else (start C:\sendEmail.exe -f %remetente% -t %destinatario% -u "ALERTA %Empresa%" -m "%Empresa%\n%Hostname%\n%ip% \n \nUnidade %Unidade2% com %Percentage% Porcento livre \n \nLupa Tecnologia" -o tls=auto -s %smtpPort% -xu %remetente% -xp %senhaemail%) for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='%Unidade3%'" get FreeSpace /format:value`) do set FreeSpace=%%x for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='%Unidade3%'" get Size /format:value`) do set Size=%%x set FreeMB=%FreeSpace:~0,-6% set SizeMB=%Size:~0,-6% set /a Percentage=100 * FreeMB / SizeMB echo C: is %Percentage% % free if %Percentage% GTR %Alertaporcentolivre% (@echo "OK") else (start C:\sendEmail.exe -f %remetente% -t %destinatario% -u "ALERTA %Empresa%" -m "%Empresa%\n%Hostname%\n%ip% \n \nUnidade %Unidade3% com %Percentage% Porcento livre \n \nLupa Tecnologia" -o tls=auto -s %smtpPort% -xu %remetente% -xp %senhaemail%)
435 616 613 papaLeguas9002
[Atendimento] bruna
[CRIACAO2011A] path = /dados/arquivos/criacao comment = Criacao 2011 A valid users = @criacao,@diretor,@atendimento
SO: Debian 8.11 ssh: -l root 191.191.115.205 -p 6622 IP: 192.168.1.78 FTP Login backup Senha lup@h0st1ng
script esta armazenado em /home/lupa/scripts/monitoramento/espaco_hd.sh esta no crontab para ser executado de 8 em 8h
#!/bin/bash
# Monitoramento de Disco
EMPRESA="PortoSeguro-backup-ip78 "
DISCO1="dm-0"
ESPACO1=`df -h | grep $DISCO1 | awk '{print $5}' | grep -v Use | sort -nr | awk -F % '{print $1}'`
ESPACO_INODE1=`df -hi | grep $DISCO1 | awk '{print $5}' | grep -v IUse | sort -nr | awk -F % '{print $1}'`
DISCO2="vg00-var"
ESPACO2=`df -h | grep $DISCO2 | awk '{print $5}' | grep -v Use | sort -nr | awk -F % '{print $1}'`
ESPACO_INODE2=`df -hi | grep $DISCO2 | awk '{print $5}' | grep -v IUse | sort -nr | awk -F % '{print $1}'`
DISCO3="vg00-backup"
ESPACO3=`df -h | grep $DISCO3 | awk '{print $5}' | grep -v Use | sort -nr | awk -F % '{print $1}'`
ESPACO_INODE3=`df -hi | grep $DISCO3 | awk '{print $5}' | grep -v IUse | sort -nr | awk -F % '{print $1}'`
DISCO4="SERVIDOR"
ESPACO4=`df -h | grep $DISCO4 | awk '{print $5}' | grep -v Use | sort -nr | awk -F % '{print $1}'`
ESPACO_INODE4=`df -hi | grep $DISCO4 | awk '{print $5}' | grep -v IUse | sort -nr | awk -F % '{print $1}'`
DISCO5="SERVIDOR_C"
ESPACO5=`df -h | grep $DISCO5 | awk '{print $5}' | grep -v Use | sort -nr | awk -F % '{print $1}'`
ESPACO_INODE5=`df -hi | grep $DISCO5 | awk '{print $5}' | grep -v IUse | sort -nr | awk -F % '{print $1}'`
ALERTA_RISCO="O disco esta prestes ficar sem espaco por favor verificar \n\n `df -h ` \n\n `uname -a`"
ALERTA_CHEIO="O disco esta cheio verifique com urgencia \n\n `df -h ` \n\n `uname -a`"
ALERTA_RISCO_INODE="O disco esta prestes ficar sem espaco favor verificar \n\n `df -hi ` \n\n \sbin\ifconfig \n\n `uname -a`"
ALERTA_CHEIO_INODE="O disco esta cheio verifique com urgencia \n\n `df -hi ` \n\n \sbin\ifconfig \n\n `uname -a`"
SUBJECT_1="POUCO ESPACO EM DISCO"
SUBJECT_2="SEM ESPACO EM DISCO"
SUBJECT_1_I="POUCOS INODES NO DISCO"
SUBJECT_2_I="SEM INODES NO DISCO"
TAMANHO=`df -h`
UNIDADE1=`df -h | grep $DISCO1`
UNIDADE2=`df -h | grep $DISCO2`
UNIDADE3=`df -h | grep $DISCO3`
UNIDADE4=`df -h | grep $DISCO4`
UNIDADE5=`df -h | grep $DISCO5`
EMAILPOUCOESPACO="sendemail -f lupa@portoseguroimobiliaria.com.br -t noc@lupainformatica.com.br -u "$EMPRESA$SUBJECT_1" -o tls=auto -s email-ssl.com.br:587 -xu lupa@portoseguroimobiliaria.com.br -xp @Lupa123"
EMAILSEMESPACO="sendemail -f lupa@portoseguroimobiliaria.com.br -t noc@lupainformatica.com.br -u "$EMPRESA$SUBJECT_2" -o tls=auto -s email-ssl.com.br:587 -xu lupa@portoseguroimobiliaria.com.br -xp @Lupa123"
EMAILPOUCOINODE="sendemail -f lupa@portoseguroimobiliaria.com.br -t noc@lupainformatica.com.br -u "$EMPRESA$SUBJECT_1_I" -o tls=auto -s email-ssl.com.br:587 -xu lupa@portoseguroimobiliaria.com.br -xp @Lupa123"
EMAILSEMINODE="sendemail -f lupa@portoseguroimobiliaria.com.br -t noc@lupainformatica.com.br -u "$EMPRESA$SUBJECT_2_I" -o tls=auto -s email-ssl.com.br:587 -xu lupa@portoseguroimobiliaria.com.br -xp @Lupa123"
# VERIFICAO E ENVIO DE EMAIL
# Verifica espaco DISCO1
case $ESPACO1 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE1" | $EMAILPOUCOESPACO ;;
100) #Caso encha tb
echo -e "$SUBJECT_2 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE1" | $EMAILSEMESPACO ;;
esac
case $ESPACO_INODE1 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE1" | $EMAILPOUCOINODE ;;
100) #Caso encha tb
echo -e "$SUBJECT_2_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE1" | $EMAILSEMINODE ;;
esac
# Verifica espaco DISCO2
case $ESPACO2 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE2" | $EMAILPOUCOESPACO ;;
100) #Caso encha tb
echo -e "$SUBJECT_2 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE2" | $EMAILSEMESPACO ;;
esac
case $ESPACO_INODE2 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE2" | $EMAILPOUCOINODE ;;
100) #Caso encha tb
echo -e "$SUBJECT_2_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE2" | $EMAILSEMINODE ;;
esac
# Verifica espaco DISCO3
case $ESPACO3 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE3" | $EMAILPOUCOESPACO ;;
100) #Caso encha tb
echo -e "$SUBJECT_2 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE3" | $EMAILSEMESPACO ;;
esac
case $ESPACO_INODE3 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE3" | $EMAILPOUCOINODE ;;
100) #Caso encha tb
echo -e "$SUBJECT_2_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE3" | $EMAILSEMINODE ;;
esac
# Verifica espaco DISCO4
case $ESPACO4 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE4" | $EMAILPOUCOESPACO ;;
100) #Caso encha tb
echo -e "$SUBJECT_2 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE4" | $EMAILSEMESPACO ;;
esac
case $ESPACO_INODE4 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE4" | $EMAILPOUCOINODE ;;
100) #Caso encha tb
echo -e "$SUBJECT_2_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE4" | $EMAILSEMINODE ;;
esac
# Verifica espaco DISCO5
case $ESPACO5 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE5" | $EMAILPOUCOESPACO ;;
100) #Caso encha tb
echo -e "$SUBJECT_2 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE5" | $EMAILSEMESPACO ;;
esac
case $ESPACO_INODE5 in
9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
echo -e "$SUBJECT_1_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE5" | $EMAILPOUCOINODE ;;
100) #Caso encha tb
echo -e "$SUBJECT_2_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE5" | $EMAILSEMINODE ;;
esac
Script é executado diariamente as 20h esta armazenado em /home/lupa/scripts/backup.sh
#!/bin/bash INICIO=`date +%d-%m-%Y-%H:%M:%S` LOG=/var/log/backup/$INICIO.log mount -a echo " " > $LOG echo " " >> $LOG echo "+---------------+" >> $LOG echo "| BACKUP DIARIO - Servidor Arquivos\Aplicação | " >> $LOG echo "+---------------+" >> $LOG echo " " >> $LOG echo "+--------------------------------------------------+" >> $LOG echo "| Sincronização Iniciada em : $INICIO |" >> $LOG echo "+--------------------------------------------------+" >> $LOG echo " " >> $LOG echo "/mnt/SERVIDOR" >> $LOG /usr/bin/rdiff-backup --remove-older-than 30D --force /backup/Servidor\ arquivos/Unidade\ D >> $LOG /usr/bin/rdiff-backup --force --print-statistics /mnt/SERVIDOR /backup/Servidor\ arquivos/Unidade\ D >> $LOG echo "/mnt/SERVIDOR_C/xampp" >> $LOG /usr/bin/rdiff-backup --remove-older-than 30D --force /backup/Servidor\ arquivos/Unidade\ C/xampp >> $LOG /usr/bin/rdiff-backup --force --print-statistics /mnt/SERVIDOR_C/xampp /backup/Servidor\ arquivos/Unidade\ C/xampp >> $LOG echo "/mnt/SERVIDOR_C/SBSImob" >> $LOG /usr/bin/rdiff-backup --remove-older-than 30D --force /backup/Servidor\ arquivos/Unidade\ C/SBSImob >> $LOG /usr/bin/rdiff-backup --force --print-statistics /mnt/SERVIDOR_C/SBSImob /backup/Servidor\ arquivos/Unidade\ C/SBSImob >> $LOG #/usr/bin/rdiff-backup --force /mnt/SERVIDOR_C/Program\ Files/Microsoft\ SQL\ Server/MSSQL10_50.SQLEXPRESS/MSSQL /backup/Servidor\ arquivos/Unidade\ C/MSSQL #echo "/mnt/SERVIDOR_C//Hyper-V/Virtual\ Hard\ Disks/" >> $LOG #/usr/bin/rdiff-backup --force --print-statistics /mnt/SERVIDOR_C//Hyper-V/Virtual\ Hard\ Disks/ /backup/Servidor\ arquivos/Unidade\ C/Sivim/ >> $LOG FINAL=`date +%d/%m/%Y-%H:%M:%S` echo " " >> $LOG echo "+--------------------------------------------------+" >> $LOG echo "| Sincronizacao Finalizada em: $FINAL |" >> $LOG echo "+--------------------------------------------------+" >> $LOG echo " " >> $LOG echo " " >> $LOG echo "+-----------------------------------------------------+" >> $LOG echo "| OCUPACAO DO DISCO |" >> $LOG echo "+-----------------------------------------------------+" >> $LOG /bin/df -h >> $LOG #cat $LOG | mailx -s "Porto Seguro - Serv. Arquivos|Aplicação" backup@lupainformatica.com.br #cat $LOG | sendemail -f log@lupainformatica.com.br -t backup@lupainformatica.com.br -u "Porto Seguro - (arquivos/Aplicação)" -o tls=auto -s webmail.lupainformatica.com.br:587 -xu log@lupainformatica.com.br -xp lupa*2010! cat $LOG | sendemail -f lupa@portoseguroimobiliaria.com.br -t backup@lupainformatica.com.br -u "Porto Seguro" -o tls=auto -s email-ssl.com.br:587 -xu lupa@portoseguroimobiliaria.com.br -xp "@Lupa123"
lupa@portoseguroimobiliaria.com.br @Lupa123
Backup: portoseguro.ddns.net Porta: 6622 root lup@h0st1ng
RDP: portoseguro.ddns.net Porta: 3838 administrador papaLeguas9002
Sivim: portoseguro.ddns.net 192.168.1.160 Porta: 3939 administrador papaleguas9002
435 616 613
admin gvt12345
(48) 34611000
servidor
nomes senhas Gilson 221822 Sergio paimae Julio avai13 anisio moby88
ana, ps*02 anisio, ps*03 cordeiro, ps*04 corretor, ps*05 dsistemas, ds*2076 espirito, ps*06 fabiana, ps*07 garcia, ps*08 gilian, ps*09 gilson, ps*10 giovani, ps*11 jadson, ps*12 jessica, ps*13 jorge, ps*14 juarez, ps*15 julio, ps*16 lorival, ps*17 nei, ps*18 ricardo, ps*19 sergio, ps*20 silvio, ps*21 televisao10, ps*22 ventura, ps*23 willian, ps*24