Zusammenführung 2
This commit is contained in:
@@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#(c) by CeMunzIT (Christopher Münzer)
|
||||||
|
|
||||||
|
MNT="/mnt/video" #Zielverzeichnis zum Sichern
|
||||||
|
HDR="/home/pi" #Heimatverzeichnis
|
||||||
|
|
||||||
|
#Arbeitsvariable
|
||||||
|
DATE="$(date +%Y-%m-%d)"
|
||||||
|
TIMESTAMP="$(date +%Y-%m-%d_%H-%M-%S)"
|
||||||
|
SOURCE_DIR="$HDR/Monitor"
|
||||||
|
TARGET_DIR="$MNT/$DATE"
|
||||||
|
LOG_DIR="$HDR/log"
|
||||||
|
LOGFILE="$LOG_DIR/$DATE.log"
|
||||||
|
ERROR="!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!"
|
||||||
|
|
||||||
|
#Logverzeichnis vorhanden/erstellen
|
||||||
|
if [ ! -d "$LOG_DIR" ]; then
|
||||||
|
mkdir -p $LOG_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Prüfung Mount vorhanden
|
||||||
|
if mountpoint -q "$MNT"; then
|
||||||
|
echo "" >> "$LOGFILE" 2>&1
|
||||||
|
echo "$TIMESTAMP Mountverzeichnis vorhanden" >> "$LOGFILE" 2>&1
|
||||||
|
else
|
||||||
|
echo "" >> "$LOGFILE" 2>&1
|
||||||
|
echo "$TIMESTAMP kein Mountpfad auf $MNT gefunden" >> "$LOGFILE" 2>&1
|
||||||
|
echo "$ERROR" >> "$LOGFILE" 2>&1
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Verfügbarer Speicherplatz am Zielverzeichnis
|
||||||
|
|
||||||
|
SPL=$(df -h $MNT | grep $MNT | tr -s ' ' | cut -d ' ' -f 5 | tr -d '%')
|
||||||
|
if [ "$SPL" -le 90 ]; then
|
||||||
|
echo "$TIMESTAMP Speicherplatz bei $SPL %" >> "$LOGFILE" 2>&1
|
||||||
|
else
|
||||||
|
echo "$TIMESTAMP Nicht genug Speicherplatz auf dem Zielverzeichnis" >> "$LOGFILE" 2>&1
|
||||||
|
echo "$ERROR" >> "$LOGFILE" 2>&1
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Zielverzeichnis mit Datum anlegen oder vorhanden
|
||||||
|
if [ ! -d "$TARGET_DIR" ]; then
|
||||||
|
mkdir -p $TARGET_DIR
|
||||||
|
echo "$TIMESTAMP Neuer Ordner in: $TARGET_DIR erstellt" >> "$LOGFILE" 2>&1
|
||||||
|
else
|
||||||
|
echo "$TIMESTAMP Ordner vorhanden" >> "$LOGFILE" 2>&1
|
||||||
|
fi
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
#Dateien verschieben
|
||||||
|
|
||||||
|
mv -v $SOURCE_DIR/* $TARGET_DIR/ >> "$LOGFILE" 2>&1
|
||||||
|
|
||||||
|
#Prüfen ob das Verschieben erfolgreich war oder nicht
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "$TIMESTAMP Verschieben Erfolgreich!" >> "$LOGFILE" 2>&1
|
||||||
|
else
|
||||||
|
echo "$TIMESTAMP Verschieben Fehlgeschlagen!" >> "$LOGFILE" 2>&1
|
||||||
|
echo "$ERROR" >> "$LOGFILE" 2>&1
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
echo "------------------------------------------------------------------------------------------------------------------------------" >> "$LOGFILE" 2>&1
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Name: cooler_skript
|
||||||
|
# Purpose: Anschluss eines Kuehlkoerpers und Temperatur Sensor
|
||||||
|
# GPIO-Library: RPi.GPIO 0.5.4
|
||||||
|
#
|
||||||
|
# Author: Felix Stern
|
||||||
|
# Website: www.tutorials-raspberrypi.de
|
||||||
|
#
|
||||||
|
# Created: 04.04.2014
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
#!/usr/bin/env python
|
||||||
|
import RPi.GPIO as GPIO
|
||||||
|
import time
|
||||||
|
import os
|
||||||
|
|
||||||
|
GPIO.setmode(GPIO.BCM)
|
||||||
|
GPIO.setwarnings(False)
|
||||||
|
|
||||||
|
IMPULS_PIN = 23 #Pin, der zum Transistor fuehrt
|
||||||
|
SLEEP_TIME = 30 #Alle wie viel Sekunden die Temperatur ueberprueft wird
|
||||||
|
MAX_CPU_TEMP = 40 #Ab welcher CPU Temperatur der Luefter sich drehen soll
|
||||||
|
MAX_SENSOR_TEMP = 30 #Ab welcher Temperatur im Gehaeuse der Luefter sich drehen soll
|
||||||
|
SENSOR_ID = '' #ID des Sonsors, BITTE ANPASSEN, falls kein Sensor vorhanden leer lassen
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def get_sensor_temperature():
|
||||||
|
try:
|
||||||
|
tempfile = open("/sys/bus/w1/devices/"+SENSOR_ID+"/w1_slave")
|
||||||
|
text = tempfile.read()
|
||||||
|
tempfile.close()
|
||||||
|
temperature_data = text.split()[-1]
|
||||||
|
temperature = float(temperature_data[2:])
|
||||||
|
temperature = temperature / 1000
|
||||||
|
return float(temperature)
|
||||||
|
except:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def get_cpu_temperature():
|
||||||
|
temp = os.popen('vcgencmd measure_temp').readline()
|
||||||
|
return float(temp.replace("temp=","").replace("'C\n",""))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
|
||||||
|
#Init
|
||||||
|
GPIO.setup(IMPULS_PIN, GPIO.OUT)
|
||||||
|
GPIO.output(IMPULS_PIN, False)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
cpu_temp = get_cpu_temperature()
|
||||||
|
sensor_temp = get_sensor_temperature()
|
||||||
|
if cpu_temp >= MAX_CPU_TEMP or sensor_temp >= MAX_SENSOR_TEMP :
|
||||||
|
GPIO.output(IMPULS_PIN, True)
|
||||||
|
else:
|
||||||
|
GPIO.output(IMPULS_PIN, False)
|
||||||
|
|
||||||
|
#print "gemessene CPU Temperatur:" + str(cpu_temp)
|
||||||
|
#print "gemessene Sensor Temperatur:" + str(sensor_temp)
|
||||||
|
|
||||||
|
time.sleep(SLEEP_TIME)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# (c) Christopher Münzer DB InfraGo Betriebszentrale Duisburg
|
||||||
|
|
||||||
|
USB_DEVICE="/dev/sda" # Ändern Sie dies zu Ihrem USB-Stick
|
||||||
|
OUTPUT_ISO="windows_isbpn_$(date +%Y%m%d).iso"
|
||||||
|
LOG="/tmp/log.txt"
|
||||||
|
|
||||||
|
touch $LOG
|
||||||
|
|
||||||
|
echo "1. Analysiere USB-Stick..." >> $LOG
|
||||||
|
sudo fdisk -l "$USB_DEVICE"
|
||||||
|
|
||||||
|
echo "2. Erstelle temporäre Verzeichnisse..." >> $LOG
|
||||||
|
TEMP_DIR=$(mktemp -d)
|
||||||
|
mkdir -p "$TEMP_DIR"/{mount1,mount2,iso}
|
||||||
|
|
||||||
|
echo "3. Identifiziere Bootloader-Dateien..." >> $LOG
|
||||||
|
|
||||||
|
# Boot-Sektor sichern (für BIOS-Boot)
|
||||||
|
sudo dd if="$USB_DEVICE" of="$TEMP_DIR/bootsect.bin" bs=512 count=1 2>/dev/null
|
||||||
|
|
||||||
|
echo "4. Mounte und kopiere Partitionen..." >> $LOG
|
||||||
|
|
||||||
|
# Erste Partition mounten (normalerweise FAT32/EFI)
|
||||||
|
PARTITION_COUNT=$(sudo fdisk -l "$USB_DEVICE" | grep "^/dev" | wc -l)
|
||||||
|
|
||||||
|
if [ $PARTITION_COUNT -ge 1 ]; then
|
||||||
|
echo " - Kopiere Partition 1..." >> $LOG
|
||||||
|
sudo mount "${USB_DEVICE}1" "$TEMP_DIR/mount1" 2>/dev/null
|
||||||
|
if mountpoint -q "$TEMP_DIR/mount1"; then
|
||||||
|
sudo cp -r "$TEMP_DIR"/mount1/* "$TEMP_DIR/iso/" 2>/dev/null
|
||||||
|
sudo umount "$TEMP_DIR/mount1" 2>/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $PARTITION_COUNT -ge 2 ]; then
|
||||||
|
echo " - Kopiere Partition 2..." >> $LOG
|
||||||
|
sudo mount "${USB_DEVICE}2" "$TEMP_DIR/mount2" 2>/dev/null
|
||||||
|
if mountpoint -q "$TEMP_DIR/mount2"; then
|
||||||
|
sudo cp -r "$TEMP_DIR"/mount2/* "$TEMP_DIR/iso/" 2>/dev/null
|
||||||
|
sudo umount "$TEMP_DIR/mount2" 2>/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "5. Suche nach Bootloader-Dateien..." >> $LOG
|
||||||
|
# Typische Windows-Boot-Dateien
|
||||||
|
BOOT_FILES=(
|
||||||
|
"bootmgr"
|
||||||
|
"bootmgr.efi"
|
||||||
|
"efi/boot/bootx64.efi"
|
||||||
|
"efi/boot/bootia32.efi"
|
||||||
|
"efi/microsoft/boot/bootmgfw.efi"
|
||||||
|
"boot/bcd"
|
||||||
|
"boot/boot.sdi"
|
||||||
|
)
|
||||||
|
|
||||||
|
BOOT_IMAGE=""
|
||||||
|
for file in "${BOOT_FILES[@]}"; do
|
||||||
|
if [ -f "$TEMP_DIR/iso/$file" ]; then
|
||||||
|
echo " Gefunden: $file"
|
||||||
|
if [[ "$file" == *.efi ]] || [[ "$file" == *.bin ]]; then
|
||||||
|
BOOT_IMAGE="$file"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "6. Erstelle bootfähige ISO..." >> $LOG
|
||||||
|
|
||||||
|
if [ -n "$BOOT_IMAGE" ]; then
|
||||||
|
echo " Verwende Boot-Image: $BOOT_IMAGE" >> $LOG
|
||||||
|
sudo genisoimage \
|
||||||
|
-b "$BOOT_IMAGE" \
|
||||||
|
-no-emul-boot \
|
||||||
|
-boot-load-size 8 \
|
||||||
|
-iso-level 3 \
|
||||||
|
-udf \
|
||||||
|
-allow-limited-size \
|
||||||
|
-J -l -D -N \
|
||||||
|
-joliet-long \
|
||||||
|
-relaxed-filenames \
|
||||||
|
-o "$OUTPUT_ISO" \
|
||||||
|
"$TEMP_DIR/iso"
|
||||||
|
else
|
||||||
|
echo " Kein Boot-Image gefunden, erstelle nicht-bootfähige ISO..." >> $LOG
|
||||||
|
sudo genisoimage \
|
||||||
|
-iso-level 3 \
|
||||||
|
-udf \
|
||||||
|
-allow-limited-size \
|
||||||
|
-J -l -D -N \
|
||||||
|
-joliet-lo ng \
|
||||||
|
-relaxed-filenames \
|
||||||
|
-o "$OUTPUT_ISO" \
|
||||||
|
"$TEMP_DIR/iso"
|
||||||
|
|
||||||
|
echo " Hinweis: ISO ist nicht bootfähig. Für bootfähige ISO müssen Sie:"
|
||||||
|
echo " 1. Windows ADK auf einem Windows-System verwenden"
|
||||||
|
echo " 2. Oder die originale Windows ISO mit Ihren Dateien neu erstellen"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "7. Aufräumen..." >> $LOG
|
||||||
|
sudo rm -rf "$TEMP_DIR"
|
||||||
|
|
||||||
|
echo "8. Prüfe ISO..." >> $LOG
|
||||||
|
if [ -f "$OUTPUT_ISO" ]; then
|
||||||
|
echo "Fertig! ISO erstellt: $OUTPUT_ISO" >> $LOG
|
||||||
|
echo "Größe: $(ls -lh "$OUTPUT_ISO" | awk '{print $5}')"
|
||||||
|
|
||||||
|
# Teste ISO-Struktur
|
||||||
|
echo "ISO-Struktur:"
|
||||||
|
isoinfo -i "$OUTPUT_ISO" -l 2>/dev/null | head -20 || \
|
||||||
|
xorriso -indev "$OUTPUT_ISO" -toc 2>/dev/null | head -20 || \
|
||||||
|
echo "Kann ISO nicht lesen, aber Datei wurde erstellt." >> $LOG
|
||||||
|
else
|
||||||
|
echo "FEHLER: ISO wurde nicht erstellt!" >> $LOG
|
||||||
|
fi
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# (c) Christopher Münzer DB InfraGo Betriebszentrale Duisburg
|
||||||
|
|
||||||
|
USB_DEVICE="/dev/sda"
|
||||||
|
OUTPUT_ISO="windows_$(date +%Y%m%d).iso"
|
||||||
|
|
||||||
|
echo "1. Analysiere USB-Stick..."
|
||||||
|
sudo fdisk -l "$USB_DEVICE"
|
||||||
|
|
||||||
|
echo "2. Erstelle temporäre Verzeichnisse..."
|
||||||
|
TEMP_DIR=$(mktemp -d)
|
||||||
|
mkdir -p "$TEMP_DIR"/{mount1,mount2,iso}
|
||||||
|
|
||||||
|
echo "3. Kopiere Boot-Sektion..."
|
||||||
|
sudo dd if="$USB_DEVICE" of="$TEMP_DIR/bootsect.bin" bs=512 count=1
|
||||||
|
|
||||||
|
echo "4. Mounte und kopiere Partitionen..."
|
||||||
|
# Erste Partition (normalerweise FAT32/EFI)
|
||||||
|
sudo mount "${USB_DEVICE}1" "$TEMP_DIR/mount1" 2>/dev/null
|
||||||
|
sudo cp -r "$TEMP_DIR"/mount1/* "$TEMP_DIR/iso/" 2>/dev/null
|
||||||
|
|
||||||
|
# Zweite Partition (normalerweise NTFS/Installation)
|
||||||
|
sudo mount "${USB_DEVICE}2" "$TEMP_DIR/mount2" 2>/dev/null
|
||||||
|
sudo cp -r "$TEMP_DIR"/mount2/* "$TEMP_DIR/iso/" 2>/dev/null
|
||||||
|
|
||||||
|
echo "5. Erstelle bootfähige ISO..."
|
||||||
|
sudo genisoimage \
|
||||||
|
-b efi/microsoft/boot/efisys.bin \
|
||||||
|
-no-emul-boot \
|
||||||
|
-boot-load-size 8 \
|
||||||
|
-iso-level 3 \
|
||||||
|
-udf \
|
||||||
|
-allow-limited-size \
|
||||||
|
-J -l -D -N \
|
||||||
|
-joliet-long \
|
||||||
|
-relaxed-filenames \
|
||||||
|
-o "$OUTPUT_ISO" \
|
||||||
|
"$TEMP_DIR/iso"
|
||||||
|
|
||||||
|
echo "6. Aufräumen..."
|
||||||
|
sudo umount "$TEMP_DIR"/mount* 2>/dev/null
|
||||||
|
sudo rm -rf "$TEMP_DIR"
|
||||||
|
|
||||||
|
echo "Fertig! ISO erstellt: $OUTPUT_ISO"
|
||||||
Reference in New Issue
Block a user