mirror of
https://codeberg.org/angestoepselt/imagestack.git
synced 2026-03-21 22:32:17 +00:00
108 lines
3 KiB
Bash
108 lines
3 KiB
Bash
#!/bin/bash
|
|
|
|
api_key=$(curl -s http://localhost:5000/snipe_api)
|
|
|
|
# CPU Model
|
|
category=`hostnamectl | grep Chassis | cut -c 21-`
|
|
cpu_model=`cat /proc/cpuinfo | grep 'model name' | uniq | cut -c14-39 | sed -e 's/([^()]*)//g' | tr -d ' ' | cut -c -12`
|
|
# OS Distribution and Version
|
|
if [ -f /etc/os-release ]; then
|
|
. /etc/os-release
|
|
os_distro="$NAME"
|
|
os_version="$VERSION"
|
|
else
|
|
os_distro="Unknown"
|
|
os_version="Unknown"
|
|
fi
|
|
|
|
# Total RAM
|
|
total_ram=$(free -h | awk '/^Mem:/ { print $2 }')
|
|
|
|
# Free space on root (/)
|
|
free_space=$(df -h / | awk 'NR==2 { print $4 }')
|
|
|
|
if [[ $category = "laptop" || $category = "notebook" ]]; then
|
|
model=2
|
|
battery=`acpi -V | grep '^Battery.*%$' | tail -c 4`
|
|
display=`xrandr | awk '/ connected/{print sqrt( ($(NF-2)/10)^2 + ($NF/10)^2 )/2.54}' | cut -c -2 | head -n 1`
|
|
else
|
|
model=1
|
|
fi
|
|
# You can now use these variables as needed
|
|
# For example, to print them later:
|
|
|
|
if [[ $(lsblk | grep sr0) ]]; then
|
|
odd=ja
|
|
else
|
|
odd=nein
|
|
fi
|
|
|
|
mac=`ip link | sed -n "/BROADCAST.*state UP/{n;p}" | tail -1 | tr -s " " | cut -d" " -f3`
|
|
serialno=`sudo dmidecode -s system-serial-number`
|
|
name=`echo $os_distro/$os_version/$cpu/$total_ram/$free_space`
|
|
|
|
echo $name
|
|
post_data() {
|
|
cat << EOF
|
|
{
|
|
"status_id": "2",
|
|
"name": "$name",
|
|
"model_id": "$model",
|
|
"serial": "$serialno",
|
|
"_snipeit_mac_address_1": "$mac",
|
|
"_snipeit_betriebssystem_2": "$os_distro $os_version",
|
|
"_snipeit_festplatte_4": "$free_space",
|
|
"_snipeit_prozessor_5": "$cpu_model",
|
|
"_snipeit_arbeitsspeicher_6": "$total_ram",
|
|
"_snipeit_optisches_laufwerk_7": "$odd",
|
|
"_snipeit_display_8": "$display",
|
|
"_snipeit_akku_9": "$battery",
|
|
"_snipeit_anydeskid_10": "$anydeskid"
|
|
}
|
|
EOF
|
|
}
|
|
|
|
curl --request GET \
|
|
--url 'https://computer.z31.it/api/v1/hardware?limit=5&search='$mac'' \
|
|
--header 'accept: application/json' \
|
|
--header 'authorization: Bearer '$api_key'' \
|
|
--header 'content-type: application/x-www-form-urlencoded' > ./check_result.json
|
|
|
|
asset_tag=$(jq -j .rows[].asset_tag ./check_result.json)
|
|
|
|
if [ ! -z ${asset_tag} ]
|
|
then
|
|
zenity --info --text "Der Rechner ist ist bereits eingetragen RE${asset_tag}" --width=500 --height=200
|
|
#echo " Der Rechner ist bereits eingetragen RE${asset_tag}"
|
|
exit 0
|
|
fi
|
|
|
|
curl --request POST \
|
|
--url https://orga.z31.it/api/v1/hardware \
|
|
--header 'accept: application/json' \
|
|
--header 'authorization: Bearer '$api_key'' \
|
|
--header 'Content-Type: application/json' \
|
|
--data "$(post_data)" > ./result.json
|
|
|
|
|
|
# get missing information from payload
|
|
asset_tag=$(cat ./result.json | jq -r '.payload.asset_tag')
|
|
result_jq=$(cat ./result.json | jq -r '.status')
|
|
erstellt_am=$(cat ./result.json | jq -r '.payload.created_at')
|
|
|
|
|
|
print_data() {
|
|
cat << EOF
|
|
{
|
|
"id": "$asset_tag",
|
|
"distribution": "$os_distro",
|
|
"version": "$os_version",
|
|
"cpu": "$cpu_model",
|
|
"memory": "$total_ram",
|
|
"disk": "$free_space"
|
|
}
|
|
EOF
|
|
}
|
|
|
|
echo $print_data
|
|
curl --request POST -d "$(print_data)" http://10.200.4.12:8000/label | lpr -H 10.200.4.12:631 -P DYMO -o landscape -
|