Hallo!
ich würde gerne aus awk heraus einen externen befehl aufrufen.
mein problem:
ich möchte das alter der smb-passwörter aus der smbpasswd herauslesen und gegebenenfalls eine erinnerungsmail schicken, dass es bitte geändert werden soll.
ich habe jetzt mit einem kleinem awk skript die spalte mit dem passwortalter aus der smbpasswd herausgelesen. weiters habe ich ein kleines script, dass mir das in hex-code angegebene eintragungsdatum des passwortes (unix-time) in ein für uns lesbares format (alter in tagen) umwandelt.
beide funktionieren, nur schaffe ich es leider nicht sie zu vereinen. awk liefert mir (genau) eine spalte. wenn ich von ausserhalb des awk-skripts das andere aufrufe, wird natürlich nur der letzte wert umgewandelt. und von innerhalb des awk-skriptes schaffe ich es nicht, einen "externe" befehl aufzurufen.
hier die beiden skripts:
das awk-skript zum herauslesen der spalte mit dem passwortalter: (an stelle des "M" möchte ich dann gerne eine spalte mit alter in tagen anfügen)
das skript zum umwandeln:
wie bring ich die beiden zusammen?
das endprodukt stelle ich mir dann so vor:
name;eintragunsdatum-hex;alter-in-tagen
franz;418009AD;3
schon mal vielen dank
LG,
Franz
ich würde gerne aus awk heraus einen externen befehl aufrufen.
mein problem:
ich möchte das alter der smb-passwörter aus der smbpasswd herauslesen und gegebenenfalls eine erinnerungsmail schicken, dass es bitte geändert werden soll.
ich habe jetzt mit einem kleinem awk skript die spalte mit dem passwortalter aus der smbpasswd herausgelesen. weiters habe ich ein kleines script, dass mir das in hex-code angegebene eintragungsdatum des passwortes (unix-time) in ein für uns lesbares format (alter in tagen) umwandelt.
beide funktionieren, nur schaffe ich es leider nicht sie zu vereinen. awk liefert mir (genau) eine spalte. wenn ich von ausserhalb des awk-skripts das andere aufrufe, wird natürlich nur der letzte wert umgewandelt. und von innerhalb des awk-skriptes schaffe ich es nicht, einen "externe" befehl aufzurufen.
hier die beiden skripts:
das awk-skript zum herauslesen der spalte mit dem passwortalter: (an stelle des "M" möchte ich dann gerne eine spalte mit alter in tagen anfügen)
Code:
awk 'BEGIN {FS = ":"} {print $1,$6,"M"}' /etc/samba/smbpasswd |
sed -e 's?LCT-??' -e 's? ?;?' -e 's? ?;?' > smbpass
das skript zum umwandeln:
Code:
dsecondsnow=$(date +%s) //akutelle zeit in sekunden, dezimal
hsecondspass=$1 //passwortalter in sekunden, hex
hsecondsnow=$(echo -e 'obase=16;'$dsecondsnow'' | bc)
dsecondspass=$(echo -e 'ibase=16;'$hsecondspass'' | bc)
let sdiff=dsecondsnow-dsecondspass
let temptdiff=sdiff/3600
let tdiff=temptdiff/24
echo $tdiff
wie bring ich die beiden zusammen?
das endprodukt stelle ich mir dann so vor:
name;eintragunsdatum-hex;alter-in-tagen
franz;418009AD;3
schon mal vielen dank
LG,
Franz