Catégories
Non classé

Restaurer les fichiers JAR à JAVA

Si vous avez détruit les associations des fichiers .JAR en installant un logiciel de type winzip, pas de panique.

La méthode la plus rapide et simple est de lancer les deux commandes suivantes en tant qu’administrateur :

ftype jarfile="C:\Program Files (x86)\Java\jre1.8.0_201\bin\javaw.exe" -jar "%1" %*
assoc .jar=jarfile

Pensez à adapter le chemin de java 🙂

 

Catégories
Non classé

Faire tourner une crontab sous windows (WSL)

Vous l’avez certainement remarqué, si vous fermez votre fenêtre WSL, toutes les tâches (y compris nohup et crontab) s’arrêtent.
L’idée est de démarrer cron au démarrage de votre session Windows (ou pc via tache plannifiée)

D’abord autoriser de lancer cron en root sans mot de passe :

sudo visudo
et ajouter :
%sudo ALL=NOPASSWD: /etc/init.d/cron start

Ensuite, dans le dossier « démarrage » de Windows, rajouter le démarrage de cron via un nouveau shortcut:

C:\Windows\System32\wsl.exe sudo /etc/init.d/cron start

voila..

Catégories
Non classé

Chip Battery.sh

#!/bin/sh
# This program gets the battery info from PMU
# Voltage and current charging/discharging
#
# Nota : temperature can be more than real because of self heating
#######################################################################
# Copyright (c) 2014 by RzBo, Bellesserre, France
#
# Permission is granted to use the source code within this
# file in whole or in part for any use, personal or commercial,
# without restriction or limitation.
#
# No warranties, either explicit or implied, are made as to the
# suitability of this code for any purpose. Use at your own risk.
#######################################################################

# force ADC enable for battery voltage and current
#i2cset -y -f 0 0x34 0x82 0xC3
i2cset -y -f 0 0x34 0x82 0xff

################################
#read Power status register @00h
POWER_STATUS=$(i2cget -y -f 0 0x34 0x00)
#echo $POWER_STATUS

BAT_STATUS=$(($(($POWER_STATUS&0x02))/2)) # divide by 2 is like shifting rigth 1 times
#echo $(($POWER_STATUS&0x02))
echo "BAT_STATUS="$BAT_STATUS
# echo $BAT_STATUS

################################
#read Power OPERATING MODE register @01h
POWER_OP_MODE=$(i2cget -y -f 0 0x34 0x01)
#echo $POWER_OP_MODE

CHARG_IND=$(($(($POWER_OP_MODE&0x40))/64)) # divide by 64 is like shifting rigth 6 times
#echo $(($POWER_OP_MODE&0x40))
echo "CHARG_IND="$CHARG_IND
# echo $CHARG_IND

[ $(($POWER_STATUS & 0x80)) -ne 0 ] && {
 echo "ACIN Present"
 ACIN_VOLT_MSB=$(i2cget -y -f 0 0x34 0x56)
 ACIN_VOLT_LSB=$(i2cget -y -f 0 0x34 0x57)
 ACIN_BIN=$(( $(($ACIN_VOLT_MSB << 4)) | $(($(($ACIN_VOLT_LSB & 0x0F)) )) ))
 ACIN_VOLT=$(echo "($ACIN_BIN*1.7)"|bc)
 echo " ACIN voltage = "$ACIN_VOLT"mV"

ACIN_I_MSB=$(i2cget -y -f 0 0x34 0x58)
 ACIN_I_LSB=$(i2cget -y -f 0 0x34 0x59)
 ACIN_I_BIN=$(( $(($ACIN_I_MSB << 4)) | $(($(($ACIN_I_LSB & 0x0F)) )) ))
 ACIN_I=$(echo "($ACIN_I_BIN*0.625)"|bc)
 echo " ACIN current = "$ACIN_I"mA"
}
[ $(($POWER_STATUS & 0x20)) -ne 0 ] && {
 echo "VBUS Present"
 VBIN_VOLT_MSB=$(i2cget -y -f 0 0x34 0x5a)
 VBIN_VOLT_LSB=$(i2cget -y -f 0 0x34 0x5b)
 VBIN_BIN=$(( $(($VBIN_VOLT_MSB << 4)) | $(($(($VBIN_VOLT_LSB & 0x0F)) )) ))
 VBIN_VOLT=$(echo "($VBIN_BIN*1.7)"|bc)
 echo " VBUS voltage = "$VBIN_VOLT"mV"

VBIN_I_MSB=$(i2cget -y -f 0 0x34 0x5c)
 VBIN_I_LSB=$(i2cget -y -f 0 0x34 0x5d)
 VBIN_I_BIN=$(( $(($VBIN_I_MSB << 4)) | $(($(($VBIN_I_LSB & 0x0F)) )) ))
 VBIN_I=$(echo "($VBIN_I_BIN*0.375)"|bc)
 echo " VBUS current = "$VBIN_I"mA"
}

################################
#read Charge control register @33h
CHARGE_CTL=$(i2cget -y -f 0 0x34 0x33)
echo "CHARGE_CTL="$CHARGE_CTL
# echo $CHARGE_CTL


################################
#read Charge control register @34h
CHARGE_CTL2=$(i2cget -y -f 0 0x34 0x34)
echo "CHARGE_CTL2="$CHARGE_CTL2
# echo $CHARGE_CTL2

###################
#read internal temperature 5eh, 5fh -144.7c -> 000h, 0.1c/bitFFFh -> 264.8c
TEMP_MSB=$(i2cget -y -f 0 0x34 0x5e)
TEMP_LSB=$(i2cget -y -f 0 0x34 0x5f)

# bash math -- converts hex to decimal so `bc` won't complain later...
# MSB is 8 bits, LSB is lower 4 bits
TEMP_BIN=$(( $(($TEMP_MSB << 4)) | $(($(($TEMP_LSB & 0x0F)) )) ))

TEMP_C=$(echo "($TEMP_BIN*0.1-144.7)"|bc)
echo "Internal temperature = "$TEMP_C"c"

BAT_EXIST=$(($(($POWER_OP_MODE&0x20))/32)) # divide by 32 is like shifting rigth 5 times
#echo $(($POWER_OP_MODE&0x20))
echo "BAT_EXIST="$BAT_EXIST
# echo $BAT_EXIST

[ $BAT_EXIST -ne 0 ] && {
################################
#read battery voltage 79h, 78h 0 mV -> 000h, 1.1 mV/bit FFFh -> 4.5045 V
BAT_VOLT_MSB=$(i2cget -y -f 0 0x34 0x78)
BAT_VOLT_LSB=$(i2cget -y -f 0 0x34 0x79)

#echo $BAT_VOLT_MSB $BAT_VOLT_LSB
# bash math -- converts hex to decimal so `bc` won't complain later...
# MSB is 8 bits, LSB is lower 4 bits
BAT_BIN=$(( $(($BAT_VOLT_MSB << 4)) | $(($(($BAT_VOLT_LSB & 0x0F)) )) ))

BAT_VOLT=$(echo "($BAT_BIN*1.1)"|bc)
echo " Battery voltage = "$BAT_VOLT"mV"


###################
#read Battery Discharge Current 7Ch, 7Dh 0 mV -> 000h, 0.5 mA/bit 1FFFh -> 1800 mA
#AXP209 datasheet is wrong, discharge current is in registers 7Ch 7Dh
#13 bits
BAT_IDISCHG_MSB=$(i2cget -y -f 0 0x34 0x7C)
BAT_IDISCHG_LSB=$(i2cget -y -f 0 0x34 0x7D)

#echo $BAT_IDISCHG_MSB $BAT_IDISCHG_LSB

BAT_IDISCHG_BIN=$(( $(($BAT_IDISCHG_MSB << 5)) | $(($(($BAT_IDISCHG_LSB & 0x1F)) )) ))

BAT_IDISCHG=$(echo "($BAT_IDISCHG_BIN*0.5)"|bc)
echo " Battery discharge current = "$BAT_IDISCHG"mA"

###################
#read Battery Charge Current 7Ah, 7Bh 0 mV -> 000h, 0.5 mA/bit FFFh -> 1800 mA
#AXP209 datasheet is wrong, charge current is in registers 7Ah 7Bh
#(12 bits)
BAT_ICHG_MSB=$(i2cget -y -f 0 0x34 0x7A)
BAT_ICHG_LSB=$(i2cget -y -f 0 0x34 0x7B)

#echo $BAT_ICHG_MSB $BAT_ICHG_LSB

BAT_ICHG_BIN=$(( $(($BAT_ICHG_MSB << 4)) | $(($(($BAT_ICHG_LSB & 0x0F)) )) ))

BAT_ICHG=$(echo "($BAT_ICHG_BIN*0.5)"|bc)
echo " Battery charge current = "$BAT_ICHG"mA"

FUEL_GAUGE=$(i2cget -y -f 0 0x34 0x0b9)
 FUEL_GAUGE=$(($FUEL_GAUGE&0x7f))
 echo " Fuel Gauge=$FUEL_GAUGE%"
}
Catégories
Non classé

Comment voyager dans le temps

Analogie avec le déplacement physique classique

Pour se déplacer dans le monde physique, on applique une force sur le monde physique par rapport à nous même.

Exemple : quand on marche, on appuie sur nos jambes qui sont fixées sur le sol: on se déplace

Pour se déplacer dans le temps, c’est la même idée. Il faut appliquer une force sur le temps.

1ère question: qu’est ce qui peut manipuler le temps.

Einstein nous l’a expliqué, le temps est déformé par la gravitation. Elle permet au temps de s’écouler plus ou moins vite. (Astronautes dans l’espace n’ont pas vu le même temps s’écouler)

2ème question: comment manipuler la gravitation.

Ce serait sympa de savoir car ça permettrait aussi de faire des voitures volantes 🙂

-> je ne sais pas encore… mais je cherche

Catégories
Non classé

Se connecter a un serveur openVPN et permettre à d’autres de l’utiliser (Site to site vpn)

Installer openVPN

apt-get install openvpn

Creer un fichier de connexion <MyHouse.conf>

dev tun
tls-client
remote MYHOME.FQDN.NET 1194
#float
redirect-gateway def1
pull
proto udp
script-security 2
comp-lzo 
reneg-sec 0 
auth-user-pass 
auth-nocache 
script-security 2 
up /root/MyHouse.script
 <ca> -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- </ca>

Créer un fichier avec le user et mot de passe <MyHouse.pass>

MyUsername
MySecurePassword

Et pour se connecter ??? openvpn –config MyHouse.conf  –auth-user-pass MyHouse.pass

MyHouse.script ::
sysctl -w net.ipv4.ip_forward=1
sysctl -p /etc/sysctl.conf
/sbin/iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Mais avec ca, je n’ai pas accès a mon réseau local… a creuser.
J’ai accès à tout le reste sauf mon réseau local…
root@chip:~# cat check_internet.sh
 #!/bin/bash
 echo This script will check if an internet connection is available. if Yes : Bring OpenVPN up
 echo if NOT, check if openvpn is UP. if yes, kill it.

let google=0
 for i in { 0..5 }
 do
 ping -c 4 8.8.8.8 > /dev/null 2>&1
 if [ $? -eq 0 ] ; then
 let google++
 fi

done

if [ $google -gt 2 ] ; then
 echo Google is available... at least 2/5
 openvpn=` ps -ef | grep -i openvpn |grep -v grep| wc -l`
 if [ $openvpn -eq 0 ] ; then
 /usr/sbin/openvpn --config /root/maison.openvpn.conf  --auth-user-pass /root/maison.openvpn.pass  2>&1 &
 else
 echo OpenVPN is allready UP. Do not touch it
 fi
 else
 echo Google is not available. Kill tunnel
 killall openvpn
 fi

crontab

* * * * * /root/check_internet.sh > /root/check_internet.log
Catégories
Non classé

Azure – Mots de passe sécurisés

Vous allez dans Azure? Vous voulez utiliser un mot de passe super complexe? et bien non !
En effet, les règles de Microsoft sont : entre 8 et 16 caractères et pas de caractères spéciaux trop spéciaux.

Selon mes tests, ces caractères ne passent pas : ù, µ, £, €, à, é, §, è, ç, à, ², ³

Pire! Si vous faites un reset password, et que lors du changement de mot de passe, vous en mettez un « trop » sécurisé, vous saurez vous connecter une fois, mais plus les fois suivantes!

Par contre, ABCdef123 est considéré par MS comme un mot de passe « fort » !

Merci Microsoft !!!!!

Catégories
Non classé

CHIP – extinction automatique en cas de batterie faible

#!/bin/sh
# Fortement inspiré de battery.sh
# a mettre dans /etc/init.d/monitorBattery.sh
# a configurer dans crontab :
# * * * * * /etc/init.d/monitorBattery.sh > /var/log/monitorBattery.log

#!/bin/sh
/usr/sbin/i2cset -y -f 0 0x34 0x82 0xC3

POWER_OP_MODE=$(/usr/sbin/i2cget -y -f 0 0x34 0x01)

BAT_EXIST=$(($(($POWER_OP_MODE&0x20))/32)) # divide by 32 is like shifting rigth 5 times
# echo « BAT_EXIST= »$BAT_EXIST

BAT_VOLT_MSB=$(/usr/sbin/i2cget -y -f 0 0x34 0x78)
BAT_VOLT_LSB=$(/usr/sbin/i2cget -y -f 0 0x34 0x79)

#echo $BAT_VOLT_MSB $BAT_VOLT_LSB
BAT_BIN=$(( $(($BAT_VOLT_MSB << 4)) | $(($(($BAT_VOLT_LSB & 0x0F)) )) ))

BAT_VOLT=$(echo « ($BAT_BIN*1.1) »|bc)
# echo « Battery voltage = « $BAT_VOLT »mV »

BAT_IDISCHG_MSB=$(/usr/sbin/i2cget -y -f 0 0x34 0x7C)
BAT_IDISCHG_LSB=$(/usr/sbin/i2cget -y -f 0 0x34 0x7D)

BAT_IDISCHG_BIN=$(( $(($BAT_IDISCHG_MSB << 5)) | $(($(($BAT_IDISCHG_LSB & 0x1F)) )) ))

BAT_IDISCHG=$(echo « ($BAT_IDISCHG_BIN*0.5) »|bc)
# echo « Battery discharge current = « $BAT_IDISCHG »mA »

if [ $BAT_EXIST -eq 1 ]
then
echo « il y a une batterie »
if (( $(bc <<< « $BAT_IDISCHG > 50 ») ))
then
echo « la batterie se decharge… J’ai plus de courant »
if (( $(bc <<< « $BAT_VOLT < 3500 ») )) then echo « La batterie est faible, moins de 3,5 volt » echo  » Battery depleted.. Shutting down : $BAT_VOLT mV » `uptime -p` >> /var/log/monitorBattery.trc
echo « extinction »
init 0
else
echo « Battery voltage = « $BAT_VOLT »mV »
echo « Ca va, on continue, ca tient… »
echo  » On battery : $BAT_VOLT mV » `uptime -p` >> /var/log/monitorBattery.trc
uptime -p
fi
fi
fi

Catégories
Non classé

kb3163622

Microsoft a changé sa méthode pour le rapatriement des GPO. Je vous passe les détails. Si vous voulez en savoir plus : https://support.microsoft.com/en-us/kb/3163622

Maintenant, si, comme moi, vous devez (à l’arrache) tripoter vos GPOs pour que ça refonctionne, voici un script PowerShell qui fait en sorte que ca fonctionne..

Si vous n’enlevez pas les commentaires, vous n’aurez qu’un audit…


$AuthenticatedUsers_NAME='Utilisateurs authentifiés'
$DomainComputers_NAME='Domain Computers'

foreach ($GPO in Get-GPO -All | sort displayname){
$permissions=Get-GPPermissions -Guid $GPO.Id -All

if ($GPO.user.Enabled -and $GPO.computer.Enabled ){
Write-Host $gpo.DisplayName "`t`t`t`tDOUBLE SECURITY :: Please, check !" -foregroundcolor cyan
}

if ($GPO.user.Enabled ){
Write-Host -nonewline $gpo.DisplayName USER
$permission=($permissions | where { $_.trustee.name -eq $AuthenticatedUsers_NAME } ).permission
if ($permission -eq 'GpoApply' -or $permission -eq 'GpoRead') {
Write-Host " : $permission" -foregroundcolor green
} else {
Write-Host "`t-- Missing USER permission --" -foregroundcolor RED
# Set-GPPermissions -Guid $GPO.Id -TargetName $AuthenticatedUsers_NAME -TargetType group -PermissionLevel GpoRead | out-null
}
}

if ($GPO.computer.Enabled ){
Write-Host -nonewline $gpo.DisplayName COMPUTER
$permission=($permissions | where { $_.trustee.name -eq $DomainComputers_NAME } ).permission
if ($permission -eq 'GpoApply' -or $permission -eq 'GpoRead') {
Write-Host " : $permission" -foregroundcolor green
} else {
Write-Host "`t-- Missing COMPUTER permission --" -foregroundcolor RED
# Set-GPPermissions -Guid $GPO.Id -TargetName $DomainComputers_NAME -TargetType group -PermissionLevel GpoRead | out-null

}
}
}

Catégories
Non classé

Éteindre le PI en cas de batterie faible

cat /etc/init.d/low_bat_shutdown
#!/bin/bash

# LiPoPi

# Shut down the Pi if the GPIO goes high indicating low battery
# GPIO Port

gpio_port= »15″
# Enable GPIO

if [ ! -d « /sys/class/gpio/gpio$gpio_port » ]; then

  echo 15 > /sys/class/gpio/export || { echo -e « Can’t access GPIO $gpio_port » 1>&2; exit 1; }

fi
# Set it to input

echo « in » > /sys/class/gpio/gpio$gpio_port/direction || { echo -e « Can’t set GPIO $gpio_port to an input » 1>&2; exit 1; }
# Set it as active high

echo 0 > /sys/class/gpio/gpio$gpio_port/active_low || { echo -e « Can’t set GPIO $gpio_port to active high » 1>&2; exit 1; }
# If its low (low battery light is on), shutdown

if [ « `cat /sys/class/gpio/gpio$gpio_port/value` » != 1 ]; then

  echo « Shutting down due to low power `date` »

  /sbin/shutdown -h now || { echo -e « Can’t halt the system » 1>&2; exit 1; }

fi

Catégories
Non classé

Avoir l’IP et la température de son pi dans le prompt du raspberrypi 

Tout se joue dans .bashrc

MON_IP=`ifconfig | grep ‘inet adr’| grep -v ‘127.0.0.1’ | cut -f 12-13 -d ‘ ‘ | cut -d: -f 2`

if [ « $color_prompt » = yes ]; then
    PS1=’${MON_IP} `/opt/vc/bin/vcgencmd measure_temp` ${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] ‘

else

    PS1=’${MON_IP} `/opt/vc/bin/vcgencmd measure_temp` ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ‘

fi