File tree 3 files changed +114
-0
lines changed
3 files changed +114
-0
lines changed Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ # Paramètres
4
+ JAR_PATH=" $1 "
5
+
6
+ # Extraire le nom du dossier du projet à partir du chemin du jar
7
+ PROJECT_DIR=$( dirname " $JAR_PATH " )
8
+
9
+ # Extraire le nom du fichier jar sans extension
10
+ JAR_FILENAME=$( basename " $JAR_PATH " )
11
+ JAR_NAME=$( echo " $JAR_FILENAME " | sed -E ' s/-[0-9].*//' )
12
+
13
+ # Chemin du fichier java.log
14
+ LOG_PATH=" $PROJECT_DIR /$JAR_NAME .log"
15
+
16
+ # Verifier si le jar est déjà en cours d'execution
17
+ # if pgrep -f "$JAR_NAME.*\.jar" > /dev/null; then
18
+ # echo "Arret du jar [$JAR_NAME] en cours..."
19
+ # pkill -f "$JAR_NAME"
20
+ # sleep 5
21
+ # fi
22
+
23
+ # Lancer le projet Java
24
+ echo " Lancement du jar [$JAR_FILENAME ] ..."
25
+ nohup java -jar " $JAR_PATH " >> " $LOG_PATH " 2>&1 &
26
+
27
+ # Attendre le lancement du projet
28
+ sleep 5
29
+
30
+
31
+ # echo $(tail -500f $LOG_PATH)
32
+ # Vérifier le processus Java
33
+ if pgrep -f " $JAR_NAME .*\.jar" > /dev/null; then
34
+ echo " OK, projet lancé"
35
+ else
36
+ echo " Erreur au lancement du jar [$JAR_NAME ]..."
37
+ fi
Original file line number Diff line number Diff line change
1
+ import requests
2
+ import time
3
+
4
+ slack_webhook_url = "https://hooks.slack.com/services/XXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
5
+
6
+ def send_slack_notification (message ):
7
+ payload = {
8
+ "text" : message
9
+ }
10
+ response = requests .post (slack_webhook_url , json = payload )
11
+
12
+ if response .status_code == 200 :
13
+ print ("Notification sent successfully" )
14
+ else :
15
+ print ("Failed to send notification" )
16
+
17
+ def monitor_ssh_logs ():
18
+ log_file = "/var/log/auth.log" # Chemin vers le fichier journal SSH
19
+ known_connections = set () # Pour stocker les connexions déjà signalées
20
+
21
+ while True :
22
+ with open (log_file , "r" ) as f :
23
+ lines = f .readlines ()
24
+
25
+ for line in reversed (lines ):
26
+ if "sshd" in line and "Accepted" in line :
27
+ if line not in known_connections :
28
+ known_connections .add (line )
29
+
30
+ # Analyser la ligne pour extraire les informations
31
+ ip_address = line .split (" " )[10 ]
32
+ username = line .split (" " )[8 ]
33
+ date_time = " " .join (line .split (" " )[0 :3 ])
34
+
35
+ new_connection_info = f"New SSH connection from { ip_address } by { username } at { date_time } "
36
+ send_slack_notification (new_connection_info )
37
+
38
+ time .sleep (60 ) # Attendre 1 minute avant de vérifier à nouveau
39
+
40
+ if __name__ == "__main__" :
41
+ monitor_ssh_logs ()
42
+
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ # Vérifier s'il n'y a pas déjà un projet Java en cours
4
+ if pgrep -f " java .*\.jar" > /dev/null; then
5
+ echo " Arret du projet java en cours..."
6
+ pkill -f " java .*\.jar"
7
+ fi
8
+
9
+ # Lancer le JAR fourni en arguments en arriere-plan
10
+ if [ $# -eq 0 ]; then
11
+ echo " Erreur : Aucun jar fourni..."
12
+ exit 1
13
+ fi
14
+
15
+ # Chemin absolu vers le JAR
16
+ JAR_PATH=" $1 "
17
+
18
+ # Extraction du répertoire
19
+ JAR_DIR=$( dirname " $JAR_PATH " )
20
+
21
+ # Construire le chemin du fichier
22
+ LOG_FILE=" $JAR_DIR /java.log"
23
+
24
+ # Lancement du jar et redirection des logs
25
+ nohup java -jar " $JAR_PATH " >> " $LOG_FILE " 2>&1 &
26
+
27
+ # Attendre quelques instants pour laisser le processus se lancer
28
+ sleep 5
29
+
30
+ # Vérifier si le processus Java est en cours d'exécution
31
+ if pgrep -f " java .*\.jar" > /dev/null; then
32
+ echo " OK"
33
+ else
34
+ echo " Erreur au lancement du projet jar..."
35
+ fi
You can’t perform that action at this time.
0 commit comments