LDAP scripting: Difference between revisions

From Hobbynet Admin Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
=Inleiding=
=Inleiding=
Omdat de ldap server in sneltreinvaart de bron voor allerlei services aan het worden is, ontstaat er ook een migratie van (veelal perl) scripts op scripting-int naar php scripts op hcc-ldap-lb1-int. Hcc-ldap-lb1-int is net als scripting-int een server met verhoogde security. Er mag dus wel '''van''' deze server '''naar''' andere servers geconnect worden maar niet andersom. Dit is vergelijkbaar met de situatie op scripting-int. Deze mogelijkheid is essentieel voor de goede werking van sommige scripts.
Omdat de ldap server in sneltreinvaart de bron voor allerlei services aan het worden is, ontstaat er ook een migratie van (veelal perl) scripts op scripting-int naar php scripts op ldap-lb1-int. ldap-lb1-int is net als scripting-int een server met verhoogde security. Er mag dus wel '''van''' deze server '''naar''' andere servers geconnect worden maar niet andersom. Dit is vergelijkbaar met de situatie op scripting-int. Deze mogelijkheid is essentieel voor de goede werking van sommige scripts.


==Type scripts==
==Type scripts==
Line 10: Line 10:
==Overzicht scripts==
==Overzicht scripts==
<pre>
<pre>
0_DIT_IS_EEN_LOCAL_DIR            gen_group_code2.php       gen_passwd_admin.php     kader_maak_txt.php     statistiek_xml.sh
0_DIT_IS_EEN_LOCAL_DIR            gen_passwd_admin.php              LDAP_include.php                    sync_hccforums.php
DBF_ftps_lget_LidGG_en_XB.sh     gen_group_hcc.php         gen_passwd_code2.php     kader_maak_xb_csv.php   sync_hobbynetbin.sh
cron_joomla.php                   gen_passwd_code2.php             LDAP_include_telefoon.php           sync_hobbynetbin_2.sh
LDAP_bepaal_startconditie.php     gen_hobbyabon.php         gen_passwd_hcc.php       locale_checker.sh      sync_hobbynetetc.sh
cron_joomla.sh                   gen_passwd_hcc.php                LDAP_lid_weg.php                   sync_hobbynetdata_2.sh
LDAP_cronjob.sh                   gen_kader_csv.php         gen_pc30_maand_rap.php  mail_reports.sh        sync_hobbynetfw.sh
database-onderhoud.sh            gen_shadow_admin.php             _LDAP_schoon_4045431_op.php         sync_hobbynetetc_2.sh
LDAP_include.php                 gen_kaderfunc.php          gen_shadow_admin.php     mailman-specials       sync_hobbynetlib.sh
dump_ldap.sh                      gen_shadow_code2.php             LDAP_schoon_database.php           sync_hobbynetfw_2.sh
LDAP_lid_weg.php                  gen_kaderlist.php         gen_shadow_code2.php    other-specials         upd_code2_accounts.sh
enquete-specials                  gen_shadow_hcc.php               LDAP_schoon_mysql_op.php            sync_hobbynetlib_2.sh
LDAP_vul_kader_vanuit_XB_csv.php gen_ldap_bul_export.php   gen_shadow_hcc.php       popbull-specials       upd_hcc_accounts.sh
forum-specials                    get_all_mailbox_sizes.sh         LDAP_vul_leden.php                  tel_unieke_bezoekers-volgens-LDAP_en_SQL.php
LDAP_vul_leden_vanuit_LIDGG.php   gen_ldap_cor_export.php   gen_xml_fw_ip4.php       purge_hccforums.php     upd_mailserver.sh
gen_bezoekersstatistiek_xml.php  get_ip4                          LDAP_vul_leden_vanuit_HCCLeden.php  tel_unieke_bezoekers-volgens-LDAP.php
dump_ldap.sh                     gen_ldap_kader_export.php gen_xml_fw_ip6.php       purge_hccforums.sh     upd_nameserver.sh
gen_compusers_csv.php            get_ip6                          LDAP_vul_locaties.php              tel_unieke_bezoekers-volgens-LDAP.sh
enquete-specials                  gen_leden_csv.php         hccforums_db.php         restore_ldap.sh         upd_srv
gen_dmarc_hcc.php                 getip-http                        LDAP_vul_profielbekend.php          test.php
forum-specials                   gen_maand_rap.php         import_tripolis_csv.php  run_maand_rapport.sh   upg_vmware_tools
gen_group_admin.php              getupdatesites_joomla.php         mailman-specials                   unblock_joomla.php
gen_compusers_csv.php             gen_mail_exclude_txt.php   init_ldap.sh             run_tripolis_export.sh upload_compusers_csv.sh
gen_group_code2.php              getupdatesites_joomla.sh          mail_tripolis_export_report.sh      unblock_joomla.sh
gen_fw.sh                         gen_mx_hcc.php            kader_maak_html.php      run_tripolis_import.sh upload_kader_csv.sh
gen_group_hcc.php                hccforums_db.php                  mail_tripolis_import_report.sh      update_domeinen.php
gen_group_admin.php               gen_mx_hobby.php           kader_maak_lijsten.sh    statistiek_xml.php     upload_leden_csv.sh
gen_hobbyabon.php                huisgenoot_lidmaatschappen.php   optouts                            update_domeinen.sh
gen_iplist_partners.php           huisgenoot_lidmaatschappen.sh     other-specials                     update_hccforums.sh
gen_iplist_partners.sh            import_tripolis_csv.php           popbull-specials                    update_joomla.php
gen_kader_csv.php                 init_ldap_mdb.sh                  postcode-specials                   update_joomla.sh
gen_kaderfunc.php                init_ldap.sh                      purge_hccforums.php                 update_joomla.sh.save
gen_kaderlist.php                 kader_maak_html.php               renameusers_joomla.php             upd_code2_accounts.sh
gen_ldap_bul_export.php          kader_maak_lijsten.sh            renameusers_joomla.sh              upd_hcc_accounts.sh
gen_ldap_cor_export.php           kader_maak_txt.php               restore_ldap.sh                     upd_ldap_dev.sh
gen_ldap_hoofdbestuur_export.php  kader_maak_xb_csv.php            rss_joomla.php                      upd_ldap-test-dev.expect
gen_ldap_kader_export.php         LDAP_bepaal_startconditie.php     rss_joomla.sh                      upd_ldap_test.sh
gen_ldap_ledenraad_export.php    ldap.conf.ldif                   ruimsmsverstuurdsmsop.sql          upd_mailserver_report.sh
gen_ldap_niet_leden_export.php   LDAP_controleer_groeperingen.php  run_maand_rapport.sh               upd_mailserver.sh
gen_leden_csv.php                 LDAP_controleer_kader.php         run_tripolis_export.sh              upd_nameserver.sh
gen_leden_dubbel.log              LDAP_cronjob.sh                   run_tripolis_import.sh             upd_srv
gen_leden_dubbel.php              LDAP_forceer_CSV.sh               schoon_alles_op_include.php        upg_vmware_tools
gen_maand_rap.php                LDAP_ftps_lget_CRM_leden.sh      schoon_alles_op.sh                  upload_bezoekersstatistiek.sh
gen_maand_rap.php.old             LDAP_herstel_profielbekend.php    schoon_breg_token_tabel_op.php      upload_compusers_csv.sh
gen_mail_exclude_txt.php          LDAP_include_henz.php            schoon_forms_database_op.php        upload_kader_csv.sh
gen_mx_hcc.php                    LDAP_include_ISO.php             schoon_JoomlaTokens_tabel_op.php   upload_leden_csv.sh
gen_mx_hcc.php.backup            LDAP_include_Joomla_db.php        schoon_LDAP_en_hcc_Bezoek_op.php   vergelijk_scripts.readme
gen_mx_hcc.php.save              LDAP_include_mail.php            statistiek_xml.php                 verrijk_factuur.php
gen_mx_hobby.php                  LDAP_include_pbkdf2.php          statistiek_xml.sh                  verrijk_factuur.sh
</pre>
</pre>


Line 29: Line 50:
<pre>
<pre>
# For more information see the manual pages of crontab(5) and cron(8)
# For more information see the manual pages of crontab(5) and cron(8)
#################################################################################################################
##############################################################################################################
#     Wijzigingen graag ook aanbrengen op deze wiki pagina: https://www.hobby.nl/hobby-adm/index.php/Cron_jobs  #
# Wijzigingen graag ook aanbrengen op deze wiki pagina: https://wiki.hobby.nl/index.php?title=LDAP_scripting #
#################################################################################################################
##############################################################################################################
# m h dom mon dow  command
# m h dom mon dow  command
0   6 * * * apt-get clean -y >/dev/null ; apt-get update >/dev/null ;apt-get upgrade -d -y >/dev/null
 
0 18 * * * apt-get clean -y >/dev/null ; apt-get update >/dev/null ;apt-get upgrade -d -y >/dev/null
# Update rssfeeds joomla
1 */1 * * * /usr/local/hobbynet/bin/rss_joomla.sh >>/var/log/rss_joomla.log
 
# Synchroniseer firewall regels van ldap-lb1 naar ldap-lb2
55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh
55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh
55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh
55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh
 
# Herstart Firewall
0  6 * * * /etc/init.d/hobby-firewall restart >/dev/null
0 12 * * * /etc/init.d/hobby-firewall restart >/dev/null
0 18 * * * /etc/init.d/hobby-firewall restart >/dev/null
0  0 * * * /etc/init.d/hobby-firewall restart >/dev/null
 
# Check op updates en download deze alvast ivm Nagios detectie
6 * * * apt-get clean -y >/dev/null ; apt-get update >/dev/null ;apt-get upgrade -d -y >/dev/null
0 18 * * * apt-get clean -y >/dev/null ; apt-get update >/dev/null ;apt-get upgrade -d -y >/dev/null
 
# Maak een beveiligde backup
45 23 * * * /usr/local/hobbynet/local/backup-encrypted.bash >>/var/log/backup_encrypted.log
45 23 * * * /usr/local/hobbynet/local/backup-encrypted.bash >>/var/log/backup_encrypted.log
50 23 * * * /usr/local/hobbynet/bin/sync_hobbynetbin.sh >>/var/log/sync_hobbynetbin.log
51 23 * * * /usr/local/hobbynet/bin/sync_hobbynetetc.sh >>/var/log/sync_hobbynetetc.log
52 23 * * * /usr/local/hobbynet/bin/sync_hobbynetlib.sh >>/var/log/sync_hobbynetlib.log
# firewall sync en herstart
55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh >/dev/null
0  6 * * * /etc/init.d/hobby-firewall restart        >/dev/null
55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh >/dev/null
0  12 * * * /etc/init.d/hobby-firewall restart        >/dev/null
55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh >/dev/null
0  18 * * * /etc/init.d/hobby-firewall restart        >/dev/null
55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw.sh >/dev/null
0  0 * * * /etc/init.d/hobby-firewall restart        >/dev/null


# jobs below only active on hcc-ldap-lb1
# Sync bin dir naar ldap-lb2
20  0 * * * /bin/bash /usr/local/hobbynet/bin/LDAP_export_passwords.sh >>/var/log/LDAP_export_passwords.log
50 23 * * * /usr/local/hobbynet/bin/sync_hobbynetbin_2.sh
5  2 * * * /usr/local/hobbynet/bin/upd_code2_accounts.sh         >/var/log/upd_code2_accounts.log
# Sync etc dir naar ldap-lb2
6  2 * * * /usr/local/hobbynet/bin/upd_hcc_accounts.sh           >/var/log/upd_hcc_accounts.log
51 23 * * * /usr/local/hobbynet/bin/sync_hobbynetetc_2.sh
10 2 * * * /bin/bash /usr/local/hobbynet/bin/LDAP_cronjob.sh   >>/var/log/LDAP_cronjob.log
# Sync lib dir naar ldap-lb2
15 2 * * * /usr/local/hobbynet/bin/run_tripolis_import.sh       >/var/log/run_tripolis_import.log 2>>/var/log/run_tripolis_import.err
52 23 * * * /usr/local/hobbynet/bin/sync_hobbynetlib_2.sh
20 2 * * * /usr/local/hobbynet/bin/purge_hccforums.sh           >>/var/log/purge_hccforums.log
 
25 2 * * * /usr/local/hobbynet/bin/upd_mailserver.sh             >/var/log/upd_mailserver.log
# Voer de cron_joomla.sh cronjob uit voor de bit backup
30 2 * * * /usr/local/hobbynet/bin/mail_reports.sh               >/dev/null
01  0 * * * /usr/local/hobbynet/bin/cron_joomla.sh >>/var/log/cron_joomla.log
31 2 * * * /usr/local/hobbynet/bin/mail_tripolis_reports.sh     >/dev/null
 
35 2 * * * /usr/local/hobbynet/bin/upload_leden_csv.sh           >/var/log/upload_leden_csv.log
# Voer de cron_joomla.sh cronjob uit voor 'update_joomla.sh'
40 2 * * * /usr/local/hobbynet/bin/upload_kader_csv.sh           >/var/log/upload_kader_csv.log
15  1 * * * /usr/local/hobbynet/bin/cron_joomla.sh >>/var/log/cron_joomla.log
45 2 * * * /usr/local/hobbynet/bin/kader_maak_lijsten.sh         >/var/log/kader_maak_lijsten.log
 
47  2 * * * /usr/local/hobbynet/bin/upload_bezoekersstatistiek.sh >/var/log/upload_bezoekersstatistiek.log
# Forceer dat er een verse set CSV bestanden klaar wordt gezet
50 2 * * * /usr/local/hobbynet/bin/run_tripolis_export.sh       >/var/log/run_tripolis_export.log
05 3 * * * /usr/local/hobbynet/bin/LDAP_forceer_CSV.sh >/dev/null
55 2 * * * /usr/local/hobbynet/bin/statistiek_xml.sh             >/var/log/statistiek_xml.log
 
0   4 1 * * /usr/local/hobbynet/bin/run_maand_rapport.sh         >/var/log/maand_rap.log
# Doe alle processing CRM->LDAP
10  3 * * * /usr/local/hobbynet/bin/LDAP_cronjob.sh >>/var/log/LDAP_cronjob.log
 
# Maak /usr/local/hobbynet/apache2conf/iplists/iplist-partners-24 aan
7  3 * * * /usr/local/hobbynet/bin/gen_iplist_partners.sh
 
# Ververs postfixadmin op mail-lb1 en mail-lb2. Mail report
26 3 * * * /usr/local/hobbynet/bin/upd_mailserver.sh >/var/log/upd_mailserver.log
30  3 * * * /usr/local/hobbynet/bin/upd_mailserver_report.sh
 
# Haal de opt-outs op van Tripolis
15 3 * * * /usr/local/hobbynet/bin/run_tripolis_import.sh >/var/log/run_tripolis_import.log
 
# Haal de handmatige Tripolis opt-outs op, en mail die naar Egbert
31 3 * * * /usr/local/hobbynet/bin/mail_tripolis_import_report.sh
 
# Maak en plaats de ledenlijst voor Kantoor
35 3 * * * /usr/local/hobbynet/bin/upload_leden_csv.sh >/dev/null
 
# Maak en plaats de kaderlijst voor Kantoor
40 3 * * * /usr/local/hobbynet/bin/upload_kader_csv.sh >/dev/null
 
# Deblokkeer actieve joomla gebruikers
45 3 * * * /usr/local/hobbynet/bin/unblock_joomla.sh >>/var/log/unblock_joomla.log
 
# Haal de aantallen bezoekers, en zet die over naar de beschermde kantoor omgeving
47 3 * * * /usr/local/hobbynet/bin/upload_bezoekersstatistiek.sh >/dev/null
 
# Maak overzicht van alle opt-ins voor Tripolis
50 3 * * * /usr/local/hobbynet/bin/run_tripolis_export.sh >/var/log/run_tripolis_export.log
 
# Hernoem in Joomla de users die zijn hernoemd in ldap
50 3 * * * /usr/local/hobbynet/bin/renameusers_joomla.sh >>/var/log/renameusers_joomla.log
 
# Haal het resultaat van de Tripolis export op, en mail die naar Egbert
52 3 * * * /usr/local/hobbynet/bin/mail_tripolis_export_report.sh
 
# Maak en plaats statistiek overzicht van alle HCC groeperingen
55  3 * * * /usr/local/hobbynet/bin/statistiek_xml.sh >/dev/null
 
# Start joomla onderhoud
0 4 * * * /usr/local/hobbynet/bin/update_joomla.sh >>/var/log/update_joomla.log
 
# Doe de Hobbynet maand rapportage
0 4 1 * * /usr/local/hobbynet/bin/run_maand_rapport.sh >/dev/null
 
# Bepaal het aantal unieke (en totaal aantal) bezoekers van de laatste 12 maanden, mail dat aan VB
5  4 1 * * /usr/local/hobbynet/bin/tel_unieke_bezoekers-volgens-LDAP.sh >/dev/null
 
# Maak een lijst van onjuiste huisgenoot-lidmaatschappen
10  4 1 * * /usr/local/hobbynet/bin/huisgenoot_lidmaatschappen.sh >/dev/null
 
# Schoon mySQL en LDAP op
5  4 2 * * /usr/local/hobbynet/bin/schoon_alles_op.sh
 
# Verrijk een naar SFTP geupload factuur bestand met factuurtokens
15  * * * * /bin/bash /usr/local/hobbynet/bin/verrijk_factuur.sh >>/var/log/verrijk_factuur.log
 
# ruim sms database op
42 12 * * * cat /usr/local/hobbynet/bin/ruimsmsverstuurdsmsop.sql |mysql >/dev/null
</pre>
</pre>


=Toepassingen=
=Toepassingen=
Soms zijn er een aantal scripts die bij elkaar horen en er voor een bepaalde toepassing zijn, zoals om de mailserver te updaten, dagelijkse bestanden voor Kantoor te maken, dagelijkse bestanden voor het Tripolis mail systeem en niet geheel onbelangrijk, scripts die ldap dagelijks bijwerken met de '''master''' data die bij DBF wordt bijgehouden.
Soms zijn er een aantal scripts die bij elkaar horen en er voor een bepaalde toepassing zijn, zoals om de mailserver te updaten, dagelijkse bestanden voor Kantoor te maken, dagelijkse bestanden voor het Tripolis mail systeem en niet geheel onbelangrijk, scripts die ldap dagelijks bijwerken met de '''master''' data die in het HCC CRM wordt bijgehouden (als er een mutatie gemist is, b.v. omdat een JSON aanroep vanuit het CRM naar de Hobbynet XML-RPC server overdag mislukt is).
 
==LDAP==
==LDAP==
Drie scripts zijn essentieel om de hele LDAP database te dumpen, te initialiseren en weer te vullen. Dit proces is nodig als een schema change moet worden aangebracht in de LDAP configuratie. Zie ook de pagina over de LDAP server.
Drie scripts zijn essentieel om de hele LDAP database te dumpen, te initialiseren en weer te vullen. Dit proces is nodig als een schema change moet worden aangebracht in de LDAP configuratie. Zie ook de pagina over de LDAP server.
* '''dump_ldap.sh'''<br>Dumpt alle ou's in afzonderlijke ldif bestanden in de data directory en maakt er ook een tarball van
* '''dump_ldap.sh'''<br>Dumpt alle ou's in afzonderlijke ldif bestanden in de data directory en maakt er ook een tarball van.
* '''init_ldap.sh <beheer-password>'''<br>Bouwt de hele LDAP structuur van de grond af op.
* '''init_ldap.sh <beheer-password>'''<br>Bouwt de hele LDAP structuur van de grond af op.
* '''restore_ldap.sh'''<br>Vult de hele LDAP structuur met file uit de dump_ldap stap.
* '''restore_ldap.sh'''<br>Vult de hele LDAP structuur met file uit de dump_ldap stap.
Line 78: Line 166:
==Statistieken==
==Statistieken==
Iedere nacht worden er door het script '''statistiek_xml.sh''' van alle groeperingen en van de complete HCC leden database statistieken in XML formaat gemaakt. Daarna worden deze statistieken met het script '''statistiek_xml.sh''' naar de kadernet server overgezet.
Iedere nacht worden er door het script '''statistiek_xml.sh''' van alle groeperingen en van de complete HCC leden database statistieken in XML formaat gemaakt. Daarna worden deze statistieken met het script '''statistiek_xml.sh''' naar de kadernet server overgezet.
==Mailserver==
==Mailserver==
De mailserver kreeg tot voor kort 2 bestanden van scripting-int, husers en b3a.txt. De inhoud van beide bestanden kan ook uit ldap gehaald worden. Hiervoor zijn de volgende scripts in gebruik:
<strike>De mailserver kreeg tot voor kort 2 bestanden van scripting-int, husers en b3a.txt. De inhoud van beide bestanden kan ook uit ldap gehaald worden. Hiervoor zijn de volgende scripts in gebruik:</strike>
* '''gen_hobbyabon.php'''.<br>Dit script maakt een equivalent aan van husers en bevat alleen de betalende Hobbynet abonnees (enige tientallen regels).
* <strike>'''gen_hobbyabon.php'''.<br>Dit script maakt een equivalent aan van husers en bevat alleen de betalende Hobbynet abonnees (enige tientallen regels).</strike>
* '''gen_kaderfunc.php'''.<br>Dit script is de vervanger van b3a.txt, de lijst van alle kaderfuncties (ongeveer 1200).
* <strike>'''gen_kaderfunc.php'''.<br>Dit script is de vervanger van b3a.txt, de lijst van alle kaderfuncties (ongeveer 1200).</strike>
* '''gen_kaderlist.php'''.<br>Een hulp bestand met alleen de 7 cijferige lidnummers van alle kaderleden (ruim 700). Deze lijst wordt op de mailserver gebruikt om incidenteel kadermailboxen op te ruimen.
* <strike>'''gen_kaderlist.php'''.<br>Een hulp bestand met alleen de 7 cijferige lidnummers van alle kaderleden (ruim 700). Deze lijst wordt op de mailserver gebruikt om incidenteel kadermailboxen op te ruimen.</strike>
* '''gen_mail_exclude_txt.php'''.<br>Nog een hulp bestand waar in de interessegroepen staan die geen functionele mailadressen nodig hebben. Dit zijn vooral de ig's die geen echte ig zijn zoals de HCC zelf en de RvA en RvT maar wel als zodanig in ldap staan. Ook de cursus presentatoren vallen hieronder.
* <strike>'''gen_mail_exclude_txt.php'''.<br>Nog een hulp bestand waar in de interessegroepen staan die geen functionele mailadressen nodig hebben. Dit zijn vooral de ig's die geen echte ig zijn zoals de HCC zelf en de RvA en RvT maar wel als zodanig in ldap staan. Ook de cursus presentatoren vallen hieronder.</strike>
* '''upd_mailserver_report.sh'''.<br>Dit script mailt de dagelijkse logs ter controle of alles goed is gegaan.
* '''upd_mailserver_report.sh'''.<br>Dit script mailt de dagelijkse logs ter controle of alles goed is gegaan.
* '''upd_mailserver.sh'''.<br>Bundelt de php scripts tot een cronjob die elke nacht loopt. Dit script draait de 4 php scripts, doet wat na bewerking, kopieert de output naar mail-lb1-int en start '''upd_mailserver_all''' op mail-lb1-int. Tenslotte worden nog de relay-domains opgehaald van mail-lb1-int (dat bestand is pas up-to-date nadat upd_mailserver_all op mail-lb1-int heeft gelopen).Hierna is mail-lb2 nog niet geheel up-to-date. Het script dat door ldap-lb1 is gestart, doet aan het eind een rsync van de datadir op mail-lb1 naar mail-lb2. Tenslotte start mail-lb1 een script op mail-lb2 om die ook up-to-date te maken. Dit is dus een drietraps systeem.
* '''upd_mailserver.sh'''.<br>Bundelt de php scripts tot een cronjob die elke nacht loopt. Dit script draait de 4 php scripts, doet wat na bewerking, kopieert de output naar mail-lb1-int en start '''upd_mailserver_all''' op mail-lb1-int. Tenslotte worden nog de relay-domains opgehaald van mail-lb1-int (dat bestand is pas up-to-date nadat upd_mailserver_all op mail-lb1-int heeft gelopen).Hierna is mail-lb2 nog niet geheel up-to-date. Het script dat door ldap-lb1 is gestart, doet aan het eind een rsync van de datadir op mail-lb1 naar mail-lb2. Tenslotte start mail-lb1 een script op mail-lb2 om die ook up-to-date te maken. Dit is dus een drietraps systeem.


==Mailman==
==Mailman==
Omdat ter zijner tijd een aantal Mailman mailinglijsten naar Tripolis gaan, is een script gemaakt om de Mailman info over de abonnees op te halen. Om aan die summiere gegevens te herkennen of iemand lid of niet-lid is een php script gemaakt (te vinden in mailman-specials).
<strike>Omdat ter zijner tijd een aantal Mailman mailinglijsten naar Tripolis gaan, is een script gemaakt om de Mailman info over de abonnees op te halen. Om aan die summiere gegevens te herkennen of iemand lid of niet-lid is een php script gemaakt (te vinden in mailman-specials).</strike>
* '''import_mailman_lists.sh'''<br>Haalt de abonnee gegevens op. Er is een aanroep in dit script van een script op de mailserver. Dat script maakt bestanden aan met zinvolle namen. Die worden opgehaald en worden in de lokale data (sub)directory geplaatst.  
* <strike>'''import_mailman_lists.sh'''<br>Haalt de abonnee gegevens op. Er is een aanroep in dit script van een script op de mailserver. Dat script maakt bestanden aan met zinvolle namen. Die worden opgehaald en worden in de lokale data (sub)directory geplaatst.</strike>
* '''import_mailman_csv.php'''<br>Leest alle opgehaalde bestanden in de lokale data (sub)directory, maakt zo nodig niet-leden aan en plaatst '''optins''' voor de locatie bulletins bij de leden en de niet-leden. Het bepalen van lid of niet-lid gebeurt puur op email adres. Als een lid op een mailinglist staat meteen adres dat '''niet''' in zijn record in LDAP staat, wordt er een niet-lid record aangemaakt! Het netto effect is dat dit lid het bulletin dubbbel zal ontvangen.
* <strike>'''import_mailman_csv.php'''<br>Leest alle opgehaalde bestanden in de lokale data (sub)directory, maakt zo nodig niet-leden aan en plaatst '''optins''' voor de locatie bulletins bij de leden en de niet-leden. Het bepalen van lid of niet-lid gebeurt puur op email adres. Als een lid op een mailinglist staat meteen adres dat '''niet''' in zijn record in LDAP staat, wordt er een niet-lid record aangemaakt! Het netto effect is dat dit lid het bulletin dubbbel zal ontvangen.</strike>


==Maandrapportage==
==Maandrapportage==
* '''gen_maand_rap.php'''.<br>Verzamelt alle data van Hobbynet abonnees en alle andere users in ldap. Optie '''-m''' mailt naar de accounthouder in het ldap record.
* '''gen_maand_rap.php'''.<br>Verzamelt alle data van Hobbynet abonnees en alle andere users in ldap. Optie '''-m''' mailt naar de accounthouder in het ldap record. Sinds medio 2020 krijgen hcc groepering webmasters deze mail niet meer, omdat ze nu allemaal gebruik maken van een Joomla template site, en daar geen 'eigenaar' meer van zijn.
* '''gen_pc30_maand_rap.php'''.<br>Mailt specifiek de gegevens van de PC30 agents naar de teamleider.
* <strike>'''gen_pc30_maand_rap.php'''.<br>Mailt specifiek de gegevens van de PC30 agents naar de teamleider.</strike>
* '''run_maand_rapport.sh'''.<br>Cronjob die bovenstaande scripts 1x per maand draait.
* '''run_maand_rapport.sh'''.<br>Cronjob die bovenstaande scripts 1x per maand draait.


==Passwd, shadow en group==
==Passwd, shadow en group==
<strike>
* gen_group_admin.php
* gen_group_admin.php
* gen_group_code2.php
* gen_group_code2.php
Line 112: Line 202:


Deze scripts genereren de passwd, shadow en group entries voor de betalende leden (_code2), de admins (_admin, de lagere goden, op het moment niet gebruikt; er is wel een .hobby met alleen Roel v.d. Bussche erin) en voor de HCC groeperingen (_hcc). De output wordt op de shared etc omgeving neergezet zodat elke (web)server ze kan toevoegen aan de passwd.temp/shadow.temp/group.temp files. Hiervoor wordt de lokale job upd_usr (of upd_hobby_only) gedraaid.
Deze scripts genereren de passwd, shadow en group entries voor de betalende leden (_code2), de admins (_admin, de lagere goden, op het moment niet gebruikt; er is wel een .hobby met alleen Roel v.d. Bussche erin) en voor de HCC groeperingen (_hcc). De output wordt op de shared etc omgeving neergezet zodat elke (web)server ze kan toevoegen aan de passwd.temp/shadow.temp/group.temp files. Hiervoor wordt de lokale job upd_usr (of upd_hobby_only) gedraaid.
</strike>


==Kantoor==
==HCC Verenigingsbureau==
Kantoor heeft beschikking over een ledenlijst en een kader/kernledenlijst die dagelijks up-to-date zijn. Deze lijsten zijn in CSV formaat zodat men zelf in de hand heeft hoe het bestand gebruikt wordt. Ze worden dagelijks op de sftp omgeving van kantoor geplaatst.
Het HCC Verenigingsbureau ('VB') heeft beschikking over een ledenlijst en een kader/kernledenlijst die dagelijks up-to-date zijn. Deze lijsten zijn in CSV formaat zodat men zelf in de hand heeft hoe het bestand gebruikt wordt. Ze worden dagelijks op de Hobbynet sftp server (dedicated server t.b.v. gebuik vanaf het VB) geplaatst.


Daarnaast krijgt kantoor iedere dag een actueel overzicht van de aantallen bezoekers (bezoekers statistiek).
Daarnaast krijgt VB iedere dag een actueel overzicht van de aantallen bezoekers (bezoekers statistiek).
    
    
* '''upload_kader_csv.sh'''<br>de cronjob  
* '''upload_kader_csv.sh'''<br>de cronjob  
* '''gen_kader_csv.php'''<br>het php script dat een bestand in CSV formaat maakt met de door Kantoor gewenste velden.
* '''gen_kader_csv.php'''<br>het php script dat een bestand in CSV formaat maakt met de door VB gewenste velden.
* '''upload_leden_csv.sh'''<br>de cronjob
* '''upload_leden_csv.sh'''<br>de cronjob
* '''gen_leden_csv.php'''<br>het php script dat een bestand in CSV formaat maakt met de door Kantoor gewenste velden.
* '''gen_leden_csv.php'''<br>het php script dat een bestand in CSV formaat maakt met de door VB gewenste velden.
* '''upload_bezoekersstatistiek.sh'''<br>de cronjob
* '''upload_bezoekersstatistiek.sh'''<br>de cronjob
* '''gen_bezoekersstatistiek_csv.php'''<br>het php script dat een bestand in CSV formaat maakt met de bezoekersstatistieken.
* '''gen_bezoekersstatistiek_csv.php'''<br>het php script dat een bestand in CSV formaat maakt met de bezoekersstatistieken.


==CompUsers==
==CompUsers==
Met CompUsers zijn speciale afspraken gemaakt door Kantoor in januari 2014. Zij krijgen een sterk verkorte lijst van ALLE leden voor hun administratie. Het streven is dit zo spoedig mogelijk te vervangen door een ander mechanisme zoals de partner check.
2020: VB heeft 'eigen' afspraken met CU gemaakt, en stuurt ze op eigen houtje zomaar ledenbestanden toe. Onze scripts zijn daarmee zinloos geworden.
 
<strike>Met CompUsers zijn speciale afspraken gemaakt door Kantoor in januari 2014. Zij krijgen een sterk verkorte lijst van ALLE leden voor hun administratie. Het streven is dit zo spoedig mogelijk te vervangen door een ander mechanisme zoals de partner check.


* '''upload_compusers_csv.sh'''<br>de cronjob
* '''upload_compusers_csv.sh'''<br>de cronjob
* '''gen_compusers_csv.php'''<br>het script dat een CSV maakt. Dit is een afgeslankt vorm van het '''gen_leden_csv.php''' script.
* '''gen_compusers_csv.php'''<br>het script dat een CSV maakt. Dit is een afgeslankt vorm van het '''gen_leden_csv.php''' script.</strike>


=Koppeling met Tripolis=
=Koppeling met Tripolis=
Het oude "popbull" systeem dat bij HenZ draait wordt in de zomer van 2013 vervangen door Tripolis. Tripolis wordt al jaren gebruikt door kantoor voor het versturen van Digizine en de Nieuwsflash. Per groepering wordt een account aangemaakt met beperkte rechten waar mee de Correspondent van de groepering mailings kan versturen. Om Tripolis en ldap in sync te houden wordt er elke nacht data uitgewisseld. Ldap is leidend in deze maar als mensen zich uitschrijven (opt-out) via de knop onder aan de mailing, moet dat doorgegeven worden aan ldap.  
Het oude "popbull" systeem dat bij HenZ draait is in de zomer van 2013 vervangen door Tripolis. Tripolis wordt al jaren gebruikt door kantoor voor het versturen van Digizine en de Nieuwsflash. Per groepering wordt een account aangemaakt met beperkte rechten waar mee de Correspondent van de groepering mailings kan versturen. Om Tripolis en ldap in sync te houden wordt er elke nacht data uitgewisseld. Ldap is leidend in deze maar als mensen zich uitschrijven (opt-out) via de knop onder aan de mailing, moet dat doorgegeven worden aan ldap.  


==Sync van Tripolis naar ldap==
==Sync van Tripolis naar ldap==
Line 148: Line 241:


==Rapportage==
==Rapportage==
Om ook de ledenadministratie in te lichten over leden die een optout op één of meer Tripolis mailings hebben gedaan, wordt na het verwerken van de optouts een mail gestuurd naar ledenadministratie@hcc.nl. Elke dag is er een nieuwe log file maar die wordt door dezelfde cronjob aan een archive geplakt. Zie mail_tripolis_reports.sh.
<strike>Om ook de ledenadministratie in te lichten over leden die een optout op één of meer Tripolis mailings hebben gedaan, wordt na het verwerken van de optouts een mail gestuurd naar ledenadministratie@hcc.nl. Elke dag is er een nieuwe log file maar die wordt door dezelfde cronjob aan een archive geplakt. Zie mail_tripolis_reports.sh.</strike>
 
Egbert laat zich iedere nacht een rapportage mail sturen, zie mail_tripolis_export_report.sh.


==Eénmalige jobs==
==Eénmalige jobs==
Er zijn een aantal php scripts voor éénmalig gebruik gemaakt. Deze worden niet in de cronjobs gebruikt maar waren slechts bedoeld om de lijsten opgeleverd door Kantoor in LDAP te krijgen. Deze scripts zijn in de subdirectory '''popbull-specials''' geplaatst.  
Er zijn een aantal php scripts voor éénmalig gebruik gemaakt. Deze worden niet in de cronjobs gebruikt maar waren slechts bedoeld om de lijsten opgeleverd door VB in LDAP te krijgen. Deze scripts zijn in de subdirectory '''popbull-specials''' geplaatst.  
* '''import_digizine_csv.php'''<br>de initiële Digizine lijst
* '''import_digizine_csv.php'''<br>de initiële Digizine lijst
* '''import_nieuwsflash_csv.php'''<br>de initiële Nieuwsflash lijst
* '''import_nieuwsflash_csv.php'''<br>de initiële Nieuwsflash lijst

Revision as of 12:44, 24 September 2020

Inleiding

Omdat de ldap server in sneltreinvaart de bron voor allerlei services aan het worden is, ontstaat er ook een migratie van (veelal perl) scripts op scripting-int naar php scripts op ldap-lb1-int. ldap-lb1-int is net als scripting-int een server met verhoogde security. Er mag dus wel van deze server naar andere servers geconnect worden maar niet andersom. Dit is vergelijkbaar met de situatie op scripting-int. Deze mogelijkheid is essentieel voor de goede werking van sommige scripts.

Type scripts

Er zijn globaal een aantal soorten scripts te onderscheiden:

  • De eigenlijke scripts die een bepaalde taak uitvoeren en vaak naar stdout schrijven (.php soms geen extensie).
  • De cronjob scripts. Gewoonlijk herkenbaar aan de .sh extensie. Deze scripts bundelen vaak meerdere php scripts tot complete oplossingen.
  • Scripts die voor initialiseren en backuppen van de ldap directory nodig zijn (init_ldap, dump_ldap en restore_ldap). Behalve dump_ldap mogen deze scripts nooit zomaar gedraaid worden; de ldap directory zou vernield worden.

Overzicht scripts

0_DIT_IS_EEN_LOCAL_DIR            gen_passwd_admin.php              LDAP_include.php                    sync_hccforums.php
cron_joomla.php                   gen_passwd_code2.php              LDAP_include_telefoon.php           sync_hobbynetbin_2.sh
cron_joomla.sh                    gen_passwd_hcc.php                LDAP_lid_weg.php                    sync_hobbynetdata_2.sh
database-onderhoud.sh             gen_shadow_admin.php              _LDAP_schoon_4045431_op.php         sync_hobbynetetc_2.sh
dump_ldap.sh                      gen_shadow_code2.php              LDAP_schoon_database.php            sync_hobbynetfw_2.sh
enquete-specials                  gen_shadow_hcc.php                LDAP_schoon_mysql_op.php            sync_hobbynetlib_2.sh
forum-specials                    get_all_mailbox_sizes.sh          LDAP_vul_leden.php                  tel_unieke_bezoekers-volgens-LDAP_en_SQL.php
gen_bezoekersstatistiek_xml.php   get_ip4                           LDAP_vul_leden_vanuit_HCCLeden.php  tel_unieke_bezoekers-volgens-LDAP.php
gen_compusers_csv.php             get_ip6                           LDAP_vul_locaties.php               tel_unieke_bezoekers-volgens-LDAP.sh
gen_dmarc_hcc.php                 getip-http                        LDAP_vul_profielbekend.php          test.php
gen_group_admin.php               getupdatesites_joomla.php         mailman-specials                    unblock_joomla.php
gen_group_code2.php               getupdatesites_joomla.sh          mail_tripolis_export_report.sh      unblock_joomla.sh
gen_group_hcc.php                 hccforums_db.php                  mail_tripolis_import_report.sh      update_domeinen.php
gen_hobbyabon.php                 huisgenoot_lidmaatschappen.php    optouts                             update_domeinen.sh
gen_iplist_partners.php           huisgenoot_lidmaatschappen.sh     other-specials                      update_hccforums.sh
gen_iplist_partners.sh            import_tripolis_csv.php           popbull-specials                    update_joomla.php
gen_kader_csv.php                 init_ldap_mdb.sh                  postcode-specials                   update_joomla.sh
gen_kaderfunc.php                 init_ldap.sh                      purge_hccforums.php                 update_joomla.sh.save
gen_kaderlist.php                 kader_maak_html.php               renameusers_joomla.php              upd_code2_accounts.sh
gen_ldap_bul_export.php           kader_maak_lijsten.sh             renameusers_joomla.sh               upd_hcc_accounts.sh
gen_ldap_cor_export.php           kader_maak_txt.php                restore_ldap.sh                     upd_ldap_dev.sh
gen_ldap_hoofdbestuur_export.php  kader_maak_xb_csv.php             rss_joomla.php                      upd_ldap-test-dev.expect
gen_ldap_kader_export.php         LDAP_bepaal_startconditie.php     rss_joomla.sh                       upd_ldap_test.sh
gen_ldap_ledenraad_export.php     ldap.conf.ldif                    ruimsmsverstuurdsmsop.sql           upd_mailserver_report.sh
gen_ldap_niet_leden_export.php    LDAP_controleer_groeperingen.php  run_maand_rapport.sh                upd_mailserver.sh
gen_leden_csv.php                 LDAP_controleer_kader.php         run_tripolis_export.sh              upd_nameserver.sh
gen_leden_dubbel.log              LDAP_cronjob.sh                   run_tripolis_import.sh              upd_srv
gen_leden_dubbel.php              LDAP_forceer_CSV.sh               schoon_alles_op_include.php         upg_vmware_tools
gen_maand_rap.php                 LDAP_ftps_lget_CRM_leden.sh       schoon_alles_op.sh                  upload_bezoekersstatistiek.sh
gen_maand_rap.php.old             LDAP_herstel_profielbekend.php    schoon_breg_token_tabel_op.php      upload_compusers_csv.sh
gen_mail_exclude_txt.php          LDAP_include_henz.php             schoon_forms_database_op.php        upload_kader_csv.sh
gen_mx_hcc.php                    LDAP_include_ISO.php              schoon_JoomlaTokens_tabel_op.php    upload_leden_csv.sh
gen_mx_hcc.php.backup             LDAP_include_Joomla_db.php        schoon_LDAP_en_hcc_Bezoek_op.php    vergelijk_scripts.readme
gen_mx_hcc.php.save               LDAP_include_mail.php             statistiek_xml.php                  verrijk_factuur.php
gen_mx_hobby.php                  LDAP_include_pbkdf2.php           statistiek_xml.sh                   verrijk_factuur.sh

Crontab

# For more information see the manual pages of crontab(5) and cron(8)
##############################################################################################################
# Wijzigingen graag ook aanbrengen op deze wiki pagina: https://wiki.hobby.nl/index.php?title=LDAP_scripting #
##############################################################################################################
# m h dom mon dow   command

# Update rssfeeds joomla
1 */1 * * * /usr/local/hobbynet/bin/rss_joomla.sh >>/var/log/rss_joomla.log

# Synchroniseer firewall regels van ldap-lb1 naar ldap-lb2
55  5 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh
55 11 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh
55 17 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh
55 23 * * * /usr/local/hobbynet/bin/sync_hobbynetfw_2.sh

# Herstart Firewall
 0  6 * * * /etc/init.d/hobby-firewall restart >/dev/null
 0 12 * * * /etc/init.d/hobby-firewall restart >/dev/null
 0 18 * * * /etc/init.d/hobby-firewall restart >/dev/null
 0  0 * * * /etc/init.d/hobby-firewall restart >/dev/null

# Check op updates en download deze alvast ivm Nagios detectie
 0  6 * * * apt-get clean -y >/dev/null ; apt-get update >/dev/null ;apt-get upgrade -d -y >/dev/null
 0 18 * * * apt-get clean -y >/dev/null ; apt-get update >/dev/null ;apt-get upgrade -d -y >/dev/null

# Maak een beveiligde backup
45 23 * * * /usr/local/hobbynet/local/backup-encrypted.bash >>/var/log/backup_encrypted.log

# Sync bin dir naar ldap-lb2
50 23 * * * /usr/local/hobbynet/bin/sync_hobbynetbin_2.sh
# Sync etc dir naar ldap-lb2
51 23 * * * /usr/local/hobbynet/bin/sync_hobbynetetc_2.sh
# Sync lib dir naar ldap-lb2
52 23 * * * /usr/local/hobbynet/bin/sync_hobbynetlib_2.sh

# Voer de cron_joomla.sh cronjob uit voor de bit backup
01  0 * * * /usr/local/hobbynet/bin/cron_joomla.sh >>/var/log/cron_joomla.log

# Voer de cron_joomla.sh cronjob uit voor 'update_joomla.sh'
15  1 * * * /usr/local/hobbynet/bin/cron_joomla.sh >>/var/log/cron_joomla.log

# Forceer dat er een verse set CSV bestanden klaar wordt gezet
05  3 * * * /usr/local/hobbynet/bin/LDAP_forceer_CSV.sh >/dev/null

# Doe alle processing CRM->LDAP
10  3 * * * /usr/local/hobbynet/bin/LDAP_cronjob.sh >>/var/log/LDAP_cronjob.log

# Maak /usr/local/hobbynet/apache2conf/iplists/iplist-partners-24 aan
 7  3 * * * /usr/local/hobbynet/bin/gen_iplist_partners.sh

# Ververs postfixadmin op mail-lb1 en mail-lb2. Mail report
26  3 * * * /usr/local/hobbynet/bin/upd_mailserver.sh >/var/log/upd_mailserver.log
30  3 * * * /usr/local/hobbynet/bin/upd_mailserver_report.sh

# Haal de opt-outs op van Tripolis
15  3 * * * /usr/local/hobbynet/bin/run_tripolis_import.sh >/var/log/run_tripolis_import.log

# Haal de handmatige Tripolis opt-outs op, en mail die naar Egbert
31  3 * * * /usr/local/hobbynet/bin/mail_tripolis_import_report.sh

# Maak en plaats de ledenlijst voor Kantoor
35  3 * * * /usr/local/hobbynet/bin/upload_leden_csv.sh >/dev/null

# Maak en plaats de kaderlijst voor Kantoor
40  3 * * * /usr/local/hobbynet/bin/upload_kader_csv.sh >/dev/null

# Deblokkeer actieve joomla gebruikers
45  3 * * * /usr/local/hobbynet/bin/unblock_joomla.sh >>/var/log/unblock_joomla.log

# Haal de aantallen bezoekers, en zet die over naar de beschermde kantoor omgeving
47  3 * * * /usr/local/hobbynet/bin/upload_bezoekersstatistiek.sh >/dev/null

# Maak overzicht van alle opt-ins voor Tripolis
50  3 * * * /usr/local/hobbynet/bin/run_tripolis_export.sh >/var/log/run_tripolis_export.log

# Hernoem in Joomla de users die zijn hernoemd in ldap
50 3 * * * /usr/local/hobbynet/bin/renameusers_joomla.sh >>/var/log/renameusers_joomla.log

# Haal het resultaat van de Tripolis export op, en mail die naar Egbert
52  3 * * * /usr/local/hobbynet/bin/mail_tripolis_export_report.sh

# Maak en plaats statistiek overzicht van alle HCC groeperingen
55  3 * * * /usr/local/hobbynet/bin/statistiek_xml.sh >/dev/null

# Start joomla onderhoud
0  4 * * * /usr/local/hobbynet/bin/update_joomla.sh >>/var/log/update_joomla.log

# Doe de Hobbynet maand rapportage
 0  4 1 * * /usr/local/hobbynet/bin/run_maand_rapport.sh >/dev/null

# Bepaal het aantal unieke (en totaal aantal) bezoekers van de laatste 12 maanden, mail dat aan VB
 5  4 1 * * /usr/local/hobbynet/bin/tel_unieke_bezoekers-volgens-LDAP.sh >/dev/null

# Maak een lijst van onjuiste huisgenoot-lidmaatschappen
10  4 1 * * /usr/local/hobbynet/bin/huisgenoot_lidmaatschappen.sh >/dev/null

# Schoon mySQL en LDAP op
 5  4 2 * * /usr/local/hobbynet/bin/schoon_alles_op.sh

# Verrijk een naar SFTP geupload factuur bestand met factuurtokens
15  * * * * /bin/bash /usr/local/hobbynet/bin/verrijk_factuur.sh >>/var/log/verrijk_factuur.log

# ruim sms database op
42 12 * * * cat /usr/local/hobbynet/bin/ruimsmsverstuurdsmsop.sql |mysql >/dev/null

Toepassingen

Soms zijn er een aantal scripts die bij elkaar horen en er voor een bepaalde toepassing zijn, zoals om de mailserver te updaten, dagelijkse bestanden voor Kantoor te maken, dagelijkse bestanden voor het Tripolis mail systeem en niet geheel onbelangrijk, scripts die ldap dagelijks bijwerken met de master data die in het HCC CRM wordt bijgehouden (als er een mutatie gemist is, b.v. omdat een JSON aanroep vanuit het CRM naar de Hobbynet XML-RPC server overdag mislukt is).

LDAP

Drie scripts zijn essentieel om de hele LDAP database te dumpen, te initialiseren en weer te vullen. Dit proces is nodig als een schema change moet worden aangebracht in de LDAP configuratie. Zie ook de pagina over de LDAP server.

  • dump_ldap.sh
    Dumpt alle ou's in afzonderlijke ldif bestanden in de data directory en maakt er ook een tarball van.
  • init_ldap.sh <beheer-password>
    Bouwt de hele LDAP structuur van de grond af op.
  • restore_ldap.sh
    Vult de hele LDAP structuur met file uit de dump_ldap stap.

Statistieken

Iedere nacht worden er door het script statistiek_xml.sh van alle groeperingen en van de complete HCC leden database statistieken in XML formaat gemaakt. Daarna worden deze statistieken met het script statistiek_xml.sh naar de kadernet server overgezet.

Mailserver

De mailserver kreeg tot voor kort 2 bestanden van scripting-int, husers en b3a.txt. De inhoud van beide bestanden kan ook uit ldap gehaald worden. Hiervoor zijn de volgende scripts in gebruik:

  • gen_hobbyabon.php.
    Dit script maakt een equivalent aan van husers en bevat alleen de betalende Hobbynet abonnees (enige tientallen regels).
  • gen_kaderfunc.php.
    Dit script is de vervanger van b3a.txt, de lijst van alle kaderfuncties (ongeveer 1200).
  • gen_kaderlist.php.
    Een hulp bestand met alleen de 7 cijferige lidnummers van alle kaderleden (ruim 700). Deze lijst wordt op de mailserver gebruikt om incidenteel kadermailboxen op te ruimen.
  • gen_mail_exclude_txt.php.
    Nog een hulp bestand waar in de interessegroepen staan die geen functionele mailadressen nodig hebben. Dit zijn vooral de ig's die geen echte ig zijn zoals de HCC zelf en de RvA en RvT maar wel als zodanig in ldap staan. Ook de cursus presentatoren vallen hieronder.
  • upd_mailserver_report.sh.
    Dit script mailt de dagelijkse logs ter controle of alles goed is gegaan.
  • upd_mailserver.sh.
    Bundelt de php scripts tot een cronjob die elke nacht loopt. Dit script draait de 4 php scripts, doet wat na bewerking, kopieert de output naar mail-lb1-int en start upd_mailserver_all op mail-lb1-int. Tenslotte worden nog de relay-domains opgehaald van mail-lb1-int (dat bestand is pas up-to-date nadat upd_mailserver_all op mail-lb1-int heeft gelopen).Hierna is mail-lb2 nog niet geheel up-to-date. Het script dat door ldap-lb1 is gestart, doet aan het eind een rsync van de datadir op mail-lb1 naar mail-lb2. Tenslotte start mail-lb1 een script op mail-lb2 om die ook up-to-date te maken. Dit is dus een drietraps systeem.

Mailman

Omdat ter zijner tijd een aantal Mailman mailinglijsten naar Tripolis gaan, is een script gemaakt om de Mailman info over de abonnees op te halen. Om aan die summiere gegevens te herkennen of iemand lid of niet-lid is een php script gemaakt (te vinden in mailman-specials).

  • import_mailman_lists.sh
    Haalt de abonnee gegevens op. Er is een aanroep in dit script van een script op de mailserver. Dat script maakt bestanden aan met zinvolle namen. Die worden opgehaald en worden in de lokale data (sub)directory geplaatst.
  • import_mailman_csv.php
    Leest alle opgehaalde bestanden in de lokale data (sub)directory, maakt zo nodig niet-leden aan en plaatst optins voor de locatie bulletins bij de leden en de niet-leden. Het bepalen van lid of niet-lid gebeurt puur op email adres. Als een lid op een mailinglist staat meteen adres dat niet in zijn record in LDAP staat, wordt er een niet-lid record aangemaakt! Het netto effect is dat dit lid het bulletin dubbbel zal ontvangen.

Maandrapportage

  • gen_maand_rap.php.
    Verzamelt alle data van Hobbynet abonnees en alle andere users in ldap. Optie -m mailt naar de accounthouder in het ldap record. Sinds medio 2020 krijgen hcc groepering webmasters deze mail niet meer, omdat ze nu allemaal gebruik maken van een Joomla template site, en daar geen 'eigenaar' meer van zijn.
  • gen_pc30_maand_rap.php.
    Mailt specifiek de gegevens van de PC30 agents naar de teamleider.
  • run_maand_rapport.sh.
    Cronjob die bovenstaande scripts 1x per maand draait.

Passwd, shadow en group

  • gen_group_admin.php
  • gen_group_code2.php
  • gen_group_hcc.php
  • gen_passwd_admin.php
  • gen_passwd_code2.php
  • gen_passwd_hcc.php
  • gen_shadow_admin.php
  • gen_shadow_code2.php
  • gen_shadow_hcc.php
  • upd_admin_accounts.sh (is er niet)
  • upd_code2_accounts.sh
  • upd_hcc_accounts.sh

Deze scripts genereren de passwd, shadow en group entries voor de betalende leden (_code2), de admins (_admin, de lagere goden, op het moment niet gebruikt; er is wel een .hobby met alleen Roel v.d. Bussche erin) en voor de HCC groeperingen (_hcc). De output wordt op de shared etc omgeving neergezet zodat elke (web)server ze kan toevoegen aan de passwd.temp/shadow.temp/group.temp files. Hiervoor wordt de lokale job upd_usr (of upd_hobby_only) gedraaid.

HCC Verenigingsbureau

Het HCC Verenigingsbureau ('VB') heeft beschikking over een ledenlijst en een kader/kernledenlijst die dagelijks up-to-date zijn. Deze lijsten zijn in CSV formaat zodat men zelf in de hand heeft hoe het bestand gebruikt wordt. Ze worden dagelijks op de Hobbynet sftp server (dedicated server t.b.v. gebuik vanaf het VB) geplaatst.

Daarnaast krijgt VB iedere dag een actueel overzicht van de aantallen bezoekers (bezoekers statistiek).

  • upload_kader_csv.sh
    de cronjob
  • gen_kader_csv.php
    het php script dat een bestand in CSV formaat maakt met de door VB gewenste velden.
  • upload_leden_csv.sh
    de cronjob
  • gen_leden_csv.php
    het php script dat een bestand in CSV formaat maakt met de door VB gewenste velden.
  • upload_bezoekersstatistiek.sh
    de cronjob
  • gen_bezoekersstatistiek_csv.php
    het php script dat een bestand in CSV formaat maakt met de bezoekersstatistieken.

CompUsers

2020: VB heeft 'eigen' afspraken met CU gemaakt, en stuurt ze op eigen houtje zomaar ledenbestanden toe. Onze scripts zijn daarmee zinloos geworden.

Met CompUsers zijn speciale afspraken gemaakt door Kantoor in januari 2014. Zij krijgen een sterk verkorte lijst van ALLE leden voor hun administratie. Het streven is dit zo spoedig mogelijk te vervangen door een ander mechanisme zoals de partner check.

  • upload_compusers_csv.sh
    de cronjob
  • gen_compusers_csv.php
    het script dat een CSV maakt. Dit is een afgeslankt vorm van het gen_leden_csv.php script.

Koppeling met Tripolis

Het oude "popbull" systeem dat bij HenZ draait is in de zomer van 2013 vervangen door Tripolis. Tripolis wordt al jaren gebruikt door kantoor voor het versturen van Digizine en de Nieuwsflash. Per groepering wordt een account aangemaakt met beperkte rechten waar mee de Correspondent van de groepering mailings kan versturen. Om Tripolis en ldap in sync te houden wordt er elke nacht data uitgewisseld. Ldap is leidend in deze maar als mensen zich uitschrijven (opt-out) via de knop onder aan de mailing, moet dat doorgegeven worden aan ldap.

Sync van Tripolis naar ldap

  • run_tripolis_import.sh
    de eigenlijke cronjob
  • import_tripolis_csv.php
    vertaalt de CSV van opt-outs naar het wissen van de individuele optins.

Tripolis plaatst elke nacht om 00:01 een CSV bestand met de opt-outs per bulletin van de vorige dag. Dit gebeurt met datums. Als de datum van gisteren ingevuld staat is daar een optout geweest. Als er geen opt-outs zijn, bevat het veld slechts een lege string. Het bestand wordt naar de ldap server gehaald waar een aantal versies bewaard worden. De bestanden wordt verwijderd van de sftp omgeving. Vervolgens worden het gedownloade bestand verwerkt om bij het lid de hccOptIn van dit bulletin te verwijderen.

Sync van ldap naar Tripolis

  • run_tripolis_export.sh
    de eigenlijk cronjob
  • gen_ldap_bul_export.php
    maakt een volledige lijst aan van emailadres, lidnr en optins. Dit bestand gaat naar de sftp omgeving van Tripolis.
  • gen_ldap_cor_export.php
    maakt een lijst van alle correspondenten voor kantoor. Dit bestand gaat naar de sftp omgeving van Kantoor.

Het export bestand wordt elke nacht (om 02:50) op de sftp omgeving voor Tripolis klaargezet. Tripolis haalt het om 05:00 op. Omdat de opt-outs van Tripolis om 02:15 verwerkt worden, is dit bestand dus al bijgewerkt voor wat betreft die opt-outs. Alle andere wijzigingen komen van de hcc.nl profielpagina's of mutaties door derden op ldap (mutaties door Hobbynet staff of PC30).

Rapportage

Om ook de ledenadministratie in te lichten over leden die een optout op één of meer Tripolis mailings hebben gedaan, wordt na het verwerken van de optouts een mail gestuurd naar ledenadministratie@hcc.nl. Elke dag is er een nieuwe log file maar die wordt door dezelfde cronjob aan een archive geplakt. Zie mail_tripolis_reports.sh.

Egbert laat zich iedere nacht een rapportage mail sturen, zie mail_tripolis_export_report.sh.

Eénmalige jobs

Er zijn een aantal php scripts voor éénmalig gebruik gemaakt. Deze worden niet in de cronjobs gebruikt maar waren slechts bedoeld om de lijsten opgeleverd door VB in LDAP te krijgen. Deze scripts zijn in de subdirectory popbull-specials geplaatst.

  • import_digizine_csv.php
    de initiële Digizine lijst
  • import_nieuwsflash_csv.php
    de initiële Nieuwsflash lijst
  • import_popbull_csv.php
    de initiële lijst zoals die van HenZ (popbull provider) komt

ISIZ enquête

Op verzoek geschreven scripts voor eenmalig gebruik. Terug te vinden in in de enquete-specials subdirectory.

  • gen_enquete_csv.php
    enquête per email
  • gen_enquete_csv_no_mail.php
    enquête per post

Nameserver

  • gen_mx_hcc.php
  • gen_mx_hobby.php
  • upd_nameserver.sh

Firewall (op ldap servers)

  • gen_xml_fw_ip4.php
  • gen_xml_fw_ip6.php
  • sync_hobbynetfw.sh
  • gen_fw.sh