Ga naar inhoud
  • 0

.


Felix

Vraag

13 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Je kunt natuurlijk het access log bekijken. Daar staan alle connecties in, inclusief voor elke connectie een regel waar ook [fmapp] in staat.

 

Maar dat is altijd achteraf.

 

Als je wilt zien welke gebruikers op welke wijze real time ingelogd zijn, moet je denk ik de login in de database zelf registreren. Elke gebruiker een record met zijn accoutnaam en dan de get(extended privileges) opvragen.

 

HE

Link naar reactie
  • 0

Je kan ook je gebruikers registreren met Get ( ApplicationVersion ): http://www.filemaker.com/help/13/fmp/en/html/func_ref2.32.17.html#1028783]

 

Dan weet je gelijk welk type applicatie. Als je dan bijvoorbeeld elke binnenkomende gebruiker registreert, en bij het afsluiten gaat verwijderen, heb je al een zeker idee van je gebruikers. Je moet dan wel nog wat inbouwen voor verbroken verbindingen en dergelijke ...

Link naar reactie
  • 0
Get (AccountExtendedPrivileges) geeft denk ik alleen de extended privileges voor het account waarmee je bent ingelogd. En dan ook alle privileges die je hebt en niet alleen via welke je op dat moment een connectie hebt gemaakt.

 

Ja, dat klopt. Maar je laat elke gebruiker die aanlogt een OpenScript draaien en in het Openscript schrijf je de timestamp, de account en extended privileges weg in een tabel waar elke gebruiker een record heeft. Of in een echte log tabel, als dat beter is. En in combinatie met de application version weet je wel hoe iemand aangelogd is.

 

Lastig is nog om alle logoff ook betrouwbaar te loggen. Als iedereen netjes op een knop drukt of Quit FileMaker kiest is er niks aan de hand, maar als mensen gewoon hun PC uitzetten of de sessie laten verlopen wordt het lastiger, omdat de client het initiatief moet nemen. Je zou bij je navigatie scripts een soort 'keep alive' kunnen inbouwen die de timestamp van de laatste activiteit logt in het 'eigen record', in combinatie met een installOnTImer script in layout waar iedereen weer terugkeert.

 

Het zou natuurlijk veel mooier zijn als je via een call naar de FileMaker Server de actuele log gegevens kunt opvragen, met de juiste accountgegevens uiteraard.

 

HE

Link naar reactie
  • 0

Op een windows-server kan je met de commandline op de volgende manier de userlist naar een bestand laten uitvoeren:

cd "%programfiles%\FileMaker\FileMaker Server\Database Server\"
fmsadmin list clients > %userprofile%\documents\log.txt

Op MacOS kan dat vast ook, het is een kwestie van uitzoeken hoe dit precies door FMS kan worden uitgevoerd om het te schedulen ... je zit vooral te emmeren met gebruikersrechten van fmsadmin en system. Ik zal het zelf ook eens proberen.

Link naar reactie
  • 0

Ik heb het even zitten knutselen op mijn (windows-)server en het werkt prima met het volgende script:

cd "%programfiles%\FileMaker\FileMaker Server\Database Server\"
fmsadmin list clients -u  -p  > ..\Data\Documents\log.txt

waarbij en moeten worden vervangen voor je eigen u/p van de fmserver-console. Het scriptje moet .cmd of .bat als extensie krijgen en in %programfiles%\FileMaker\FileMaker Server\Data\Scripts worden geplaatst.

Vervolgens maak je in de FMS-console een schedule dat dit scriptje iedere minuut aftrapt.

 

De volgende stap is een fmp-logbestandje maken. Daarvoor kan je het bijgevoegde voorbeeld gebruiken: Log.fmp12 en ook met dit bestand maak je in FMS een schedule dat óók iedere minuut wordt afgetrapt, met het enige script dat er in aanwezig is.

 

In dit bestand wordt 5 seconden wacht voordat het gaat importeren, dat blijkt voldoende. Als je korter wacht of heemaal niet, dan mislukt de vorige schedule en kan je niks oplepelen uit het text-bestandje. Na de import wordt de data verwerkt .... nieuwe client ID's worden aan de lijst toegevoegd en oude ID's worden bijgewerkt. Is een client niet meer aanwezig, dan wordt de entry niet meer bijgewerkt en wordt ook de _Last tijdstempel niet meer bijgewerkt.

 

Uiteraard moet dit bestand eigenlijk weer worden leeggegooid bij het opnieuw opstarten van FMS, want de clientID's worden dan namelijk gereset. Het is echter niet erg als dat niet gebeurt, want als je zoekt naar de grootste _Last-waarde dan weet je welke clients er op dat moment zijn ingelogd. Je weet dan alleen niet wanneer ze de eerste keer zijn ingelogd ... dit valt echter voorlopig buiten de scope, het gaat hier om de werking. Opleuken is voor later een zorg.

 

Ik heb dit niet op MacOS geprobeerd, maar daar zie ik graag jouw bevindingen :D

Link naar reactie
  • 0

Het schrijven van het log-bestandje in de documentenmap lijkt met het beste gewoon door de server te laten doen dmv een schedule. Het vullen van het fm-bestand zou je prima met psos kunnen doen, maar dan zie ik twee bezwaren:

#1: deze is niet heel belangrijk, maar je weet niet wanneer een client is ingelogd en

#2: Je zit in een multiuser-omgeving en met 2 of 3 gebruikers zal je elkaar bij het vullen van het fm-log-bestand niet heel snel in de weg gaan zitten, met 25 of 50 gebruikers is dat mogelijk anders.

Link naar reactie
  • 0

Heb fii een macserver geïnstaleerd. Je kan vanaf de commandline een bestandje in documents schrijven met:

fmsadmin list clients -u  -p  > /Volumes/Macintosh\ HD/Library/FileMaker\ Server/Data/Documents/log.txt

Werkt dus identiek als onder windows, behalve dat fmsadmin gewoon bekend is bij het systeem en je niet naar de map met de executable hoeft te wisselen :)

 

Automatiseren kan op de volgende manier:

 

1) Maak een scriptbestand log.sh (opslaan als platte tekst) in /Volumes/Macintosh\ HD/Library/FileMaker\ Server/Data/Scripts/ met de volgende inhoud:

#!/bin/sh
fmsadmin list clients -u  -p  > /Volumes/Macintosh\ HD/Library/FileMaker\ Server/Data/Documents/log.txt

2) Pas de permissies van het bestand aan met:

chmod 755 /Volumes/Macintosh\ HD/Library/FileMaker\ Server/Data/Scripts/log.sh

3) Maak een schedule in FMS:schedule.png.2d02005cd0a794d441c81e988f92a35a.png

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...