SlideShare a Scribd company logo
1 of 17
Download to read offline
Drush + Multisite:
                                  drush_multi

                                       Florian Latzel




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   1
whoami


    Florian „fl3a“ Latzel
    Staatl. gepr. Informatiker
    LPIC Level 2
    Seit '06 IT-Berater(„ISL Individuelle System Lösungen“)
    Blog: http://netzaffe.de
    ●   Open Source Software
    ●   Content Management Systeme
    ●   Web-Entwicklung
    ●   Analyse, Beratung, Konzeption, Training

drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   2
ls ­lia drush


   Inhalt
   ●   Drush
   ●   Multisite
   ●   drush_multi
   ●   Bewegründe
   ●   Commands
   ●   Stolpersteine




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   3
whatis drush


    Drupal Shell
    ●   Projektseite:
        http://drupal.org/project/drush
    ●   Bevorzugt auf unixoiden Systemen
    ●   PHP-CLI Skript
    ●   Kein Drupal-Modul
    ●   Benötigt keine Drupal-Installation
    ●   Unabhängig von Drupal-Version(5.x, 6.x, 7.x)



drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   4
ls ­l /var/www/drupal


   Multisite
    drupal/
    |­­ 6.x ­> drupal­6.14
    |­­ 6.x_backup
    |­­ 6.x_sites
    |   |­­ all   
    |   |­­ default
    |   |­­ example.com
    |   |   |­­ files
    |   |   |­­ modules
    |   |   `­­ themes
    |   `­­ sub.example.com 
    |       |­­ files
    |       |­­ modules
    |       `­­ themes 
    `­­ drupal­6.14
       |­­ backup ­> ../6.x_backup
       |­­ includes
       |­­ misc
       |­­ modules
       |­­ profiles
       |­­ scripts
       `­­ sites  ­> ../6.x_sites 


drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   5
firefox http://drupal.org/project/drush_multi


   drush_multi
    ●   Projektseite
        http://drupal.org/project/drush_multi
    ●   Dokumentation
        http://is-loesungen.de/docu/drush_multi
    ●   Benötigt drush >= 2.1
    ●   Status: „Experimentell“
    ●   Installation über CVS
    ●   @todo's
        http://is-loesungen.de/docu/drush_multi/todo.html

drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   6
why?


   Bewegründe
    ●   Shellskript VS drush
    ●   Zeit
    ●   Admins sind faul




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   7
multi create (mcr, create)


   Erstellt eine Multisite-Installation.
   Examples:
    drush multi create /var/www 6                    Create a drupal 6 installation in 
                                                     /var/www with creating the 
                                                     directories 6.x_sites, 6.x_backup 
                                                     in /var/www linked as sites and 
                                                     backup withing the drupal 
                                                     installation folder.
   Arguments:
    /path/to/installation                            Directoy where drupal should be
                                                     installed. Mandatory
    core                            Drupal core compatiblity.
                                    Mandatory.




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   8
multi site (msi, site)


   Legt eine Site innerhalb der Installation an.
   Examples:
    drush ­r /path/to/drupal multi site                        Create the site 'example.com'  
    example.com                                                within a 'files', a 'themes',  
    ­­create­directories=dir1,dir2,dir3                        a 'modules' directory  and the 
                                                               additional directories 'dir1', 
                                                               'dir2' and 'dir3' in 
                                                               /path/to/drupal/sites.
   Arguments:
    Site­name                                                  Name of the site. Mandatory.
   Options:
    ­­create­directories                   Comma seperated list of 
                                           aditional directories.




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   9
multi status (mst)


   Status der Multisite-Installation.
   Erweiterter drush status
    ●   Sites
    ●   Sitecounter
    ●   Verherige Drupal Versionen
    ●   Core Status


   drush ­r /path/to/drupal multi status




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   10
multi exec (mex)


   Batch Operationen über alle Sites.
   Examples:
   drush ­r /path/to/drupal multi exec       
   Arguments: 
    command                  The drush command to execute. For drush 
                             commands with blanks like 'watchdog show'
                             make sure to use single or double quotes. 
                             Mandatory.
   Options:
    ­­option                               Option to pass to drush command. e.g. 
                                           '­­limit=20' for 'watchdog show'. 
                                           The number of messages to show. 
                                           Optional.
    ­­argument               Argument to pass to drush command e.g. 
                             'php' as type for 'watchdog delete' and  
                             'watchdog show'. 
                             Optional.
drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   11
multi sql dump (msq)


   SQL-Dumps über alle Sites im Batch-Mode.
   Examples:
   drush ­r /path/to/drupal multi sql dump ­­bzip2 ­­comment=before­
   update­to­6.15  ­­destination=$HOME/db_backups
   Options:
    ­­destination                     Absolute Path to the directory where to store 
                                      the sql dumps. Default /tmp. Optional.
    ­­comment             Comment for filename. May contain alphanumics, 
                          '­' and '_'. Optional.
    ­­bzip2               Use bzip2 for compression of each sql dump. 
                          Optional




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   12
multi nagios (mna, nagios)


  Zur Benutzung als Nagios-Plugin.
  Überwacht die Drupal-Installation auf Core-Updates.
  Liefert Nachricht und Exit-Status. (0 = OK, 2 = Critical)
  drush ­r /path/to/drupal multi nagios




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   13
multi drupalupdate (mdr, drupalupdate)


   Update des Drupal Core's über drush...
   drush ­r /path/to/drupal drupalupdate




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   14
preg_match(): No ending delimiter '^' found


   Stolpersteine
    ●   Drush Hooks durch Zufall entdeckt[1]
    ●   Entfernung des Shebang's in drush.php[2][3]
    ●   Umbennenung von dl nach download wg. der
        Einführung von Aliases in drush 2.1[3][4]
    ●   Änderung in drush_scan_directory() in drush 2.1:
        Ersetzung von ereg() durch preg_match()
    ●   Rückgabewert von _pm_get_update_info() ist bei
        5.x und 6.x unterschiedlich



drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   15
Appendix


        [1] #349923 drush_invoke : a flexible API for hooking
          into any and all drush calls.
          http://drupal.org/node/349923
          In drush 2.1 in Form von drush.api.php 
          dokumentiert
        [2] #586466 Drush.php is no longer directly
          executable (can interfere with backend invoke)
          http://drupal.org/node/586466
        [3] #549494 Support for command aliases
           http://drupal.org/node/549494
        [4] Blogbeitrag zum 2.1 Release von drush
            http://netzaffe.de/blog/2009/10/27/drush-6-x-2-1-release.html
drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   16
which; whatis; who >/dev/null


    Fragen?


    f.latzel@is-loesungen.de




drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28   17

More Related Content

What's hot

Ts drupal6 module development v0.2
Ts   drupal6 module development v0.2Ts   drupal6 module development v0.2
Ts drupal6 module development v0.2
Confiz
 
Sergei Stryukov.Drush.Why it should be used.DrupalCamp Kyiv 2011
Sergei Stryukov.Drush.Why it should be used.DrupalCamp Kyiv 2011Sergei Stryukov.Drush.Why it should be used.DrupalCamp Kyiv 2011
Sergei Stryukov.Drush.Why it should be used.DrupalCamp Kyiv 2011
camp_drupal_ua
 
Plain english guide to drupal 8 criticals
Plain english guide to drupal 8 criticalsPlain english guide to drupal 8 criticals
Plain english guide to drupal 8 criticals
Angela Byron
 
3 Git
3 Git3 Git
Balisage - EXPath - A practical introduction
Balisage - EXPath - A practical introductionBalisage - EXPath - A practical introduction
Balisage - EXPath - A practical introduction
Florent Georges
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
 
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
camp_drupal_ua
 
Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3
Drupalcon Paris
 

What's hot (19)

Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
 
Migrating data to drupal 8
Migrating data to drupal 8Migrating data to drupal 8
Migrating data to drupal 8
 
Ts drupal6 module development v0.2
Ts   drupal6 module development v0.2Ts   drupal6 module development v0.2
Ts drupal6 module development v0.2
 
[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party
 
Sergei Stryukov.Drush.Why it should be used.DrupalCamp Kyiv 2011
Sergei Stryukov.Drush.Why it should be used.DrupalCamp Kyiv 2011Sergei Stryukov.Drush.Why it should be used.DrupalCamp Kyiv 2011
Sergei Stryukov.Drush.Why it should be used.DrupalCamp Kyiv 2011
 
Ansible Project Deploy (phpbenelux 2015)
Ansible Project Deploy (phpbenelux 2015)Ansible Project Deploy (phpbenelux 2015)
Ansible Project Deploy (phpbenelux 2015)
 
Plain english guide to drupal 8 criticals
Plain english guide to drupal 8 criticalsPlain english guide to drupal 8 criticals
Plain english guide to drupal 8 criticals
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 
3 Git
3 Git3 Git
3 Git
 
Ansible project-deploy
Ansible project-deployAnsible project-deploy
Ansible project-deploy
 
Balisage - EXPath - A practical introduction
Balisage - EXPath - A practical introductionBalisage - EXPath - A practical introduction
Balisage - EXPath - A practical introduction
 
Exploring composer in drupal 8 with drupal project - salva molina
Exploring composer in drupal 8 with drupal project - salva molinaExploring composer in drupal 8 with drupal project - salva molina
Exploring composer in drupal 8 with drupal project - salva molina
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
Doctrine Project
Doctrine ProjectDoctrine Project
Doctrine Project
 
8b. Column Oriented Databases Lab
8b. Column Oriented Databases Lab8b. Column Oriented Databases Lab
8b. Column Oriented Databases Lab
 
Bring drupal 8 to all in their native languages
Bring drupal 8 to all in their native languagesBring drupal 8 to all in their native languages
Bring drupal 8 to all in their native languages
 
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
 
Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3
 

Similar to Drush und Multisite: drush_multi

Speed up Drupal development with Drush
Speed up Drupal development with DrushSpeed up Drupal development with Drush
Speed up Drupal development with Drush
kbasarab
 
Depolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and CapistranoDepolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and Capistrano
libsys
 
Drush to simplify Drupalers work - Sivaji
Drush to simplify Drupalers work - SivajiDrush to simplify Drupalers work - Sivaji
Drush to simplify Drupalers work - Sivaji
Drupal Camp Delhi
 
Modernize Your Drupal Development
Modernize Your Drupal DevelopmentModernize Your Drupal Development
Modernize Your Drupal Development
Chris Tankersley
 

Similar to Drush und Multisite: drush_multi (20)

A Drush Primer - DrupalCamp Chattanooga 2013
A Drush Primer - DrupalCamp Chattanooga 2013A Drush Primer - DrupalCamp Chattanooga 2013
A Drush Primer - DrupalCamp Chattanooga 2013
 
Hong Kong Drupal User Group - Introduction of Drush
Hong Kong Drupal User Group - Introduction of DrushHong Kong Drupal User Group - Introduction of Drush
Hong Kong Drupal User Group - Introduction of Drush
 
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLAImproving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
 
Beginning Drush
Beginning DrushBeginning Drush
Beginning Drush
 
Speed up Drupal development with Drush
Speed up Drupal development with DrushSpeed up Drupal development with Drush
Speed up Drupal development with Drush
 
drush - the commandline is your friend
drush - the commandline is your frienddrush - the commandline is your friend
drush - the commandline is your friend
 
Pavlenko Sergey. Drush: using and creating custom commands. DrupalCamp Kyiv 2011
Pavlenko Sergey. Drush: using and creating custom commands. DrupalCamp Kyiv 2011Pavlenko Sergey. Drush: using and creating custom commands. DrupalCamp Kyiv 2011
Pavlenko Sergey. Drush: using and creating custom commands. DrupalCamp Kyiv 2011
 
Drush workshop
Drush workshopDrush workshop
Drush workshop
 
Drush for drupal website builder
Drush for drupal website builderDrush for drupal website builder
Drush for drupal website builder
 
Drush in the Composer Era
Drush in the Composer EraDrush in the Composer Era
Drush in the Composer Era
 
Drush A beginners guide to a advanced tool.
Drush A beginners guide to a advanced tool.Drush A beginners guide to a advanced tool.
Drush A beginners guide to a advanced tool.
 
Face your fears: Drush and Aegir
Face your fears: Drush and AegirFace your fears: Drush and Aegir
Face your fears: Drush and Aegir
 
Depolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and CapistranoDepolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and Capistrano
 
Drush to simplify Drupalers work - Sivaji
Drush to simplify Drupalers work - SivajiDrush to simplify Drupalers work - Sivaji
Drush to simplify Drupalers work - Sivaji
 
Intro to Drush
Intro to DrushIntro to Drush
Intro to Drush
 
Drupal 8 update & drush: October 2014
Drupal 8 update & drush: October 2014Drupal 8 update & drush: October 2014
Drupal 8 update & drush: October 2014
 
Drupal Overview For Techies
Drupal Overview For TechiesDrupal Overview For Techies
Drupal Overview For Techies
 
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
 
Using Composer with Drupal and Drush
Using Composer with Drupal and DrushUsing Composer with Drupal and Drush
Using Composer with Drupal and Drush
 
Modernize Your Drupal Development
Modernize Your Drupal DevelopmentModernize Your Drupal Development
Modernize Your Drupal Development
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Drush und Multisite: drush_multi

  • 1. Drush + Multisite: drush_multi Florian Latzel drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 1
  • 2. whoami Florian „fl3a“ Latzel Staatl. gepr. Informatiker LPIC Level 2 Seit '06 IT-Berater(„ISL Individuelle System Lösungen“) Blog: http://netzaffe.de ● Open Source Software ● Content Management Systeme ● Web-Entwicklung ● Analyse, Beratung, Konzeption, Training drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 2
  • 3. ls ­lia drush Inhalt ● Drush ● Multisite ● drush_multi ● Bewegründe ● Commands ● Stolpersteine drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 3
  • 4. whatis drush Drupal Shell ● Projektseite: http://drupal.org/project/drush ● Bevorzugt auf unixoiden Systemen ● PHP-CLI Skript ● Kein Drupal-Modul ● Benötigt keine Drupal-Installation ● Unabhängig von Drupal-Version(5.x, 6.x, 7.x) drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 4
  • 5. ls ­l /var/www/drupal Multisite  drupal/  |­­ 6.x ­> drupal­6.14  |­­ 6.x_backup  |­­ 6.x_sites  |   |­­ all     |   |­­ default  |   |­­ example.com  |   |   |­­ files  |   |   |­­ modules  |   |   `­­ themes  |   `­­ sub.example.com   |       |­­ files  |       |­­ modules  |       `­­ themes   `­­ drupal­6.14     |­­ backup ­> ../6.x_backup     |­­ includes     |­­ misc     |­­ modules     |­­ profiles     |­­ scripts     `­­ sites  ­> ../6.x_sites  drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 5
  • 6. firefox http://drupal.org/project/drush_multi drush_multi ● Projektseite http://drupal.org/project/drush_multi ● Dokumentation http://is-loesungen.de/docu/drush_multi ● Benötigt drush >= 2.1 ● Status: „Experimentell“ ● Installation über CVS ● @todo's http://is-loesungen.de/docu/drush_multi/todo.html drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 6
  • 7. why? Bewegründe ● Shellskript VS drush ● Zeit ● Admins sind faul drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 7
  • 8. multi create (mcr, create) Erstellt eine Multisite-Installation. Examples:  drush multi create /var/www 6 Create a drupal 6 installation in  /var/www with creating the  directories 6.x_sites, 6.x_backup  in /var/www linked as sites and  backup withing the drupal  installation folder. Arguments:  /path/to/installation Directoy where drupal should be installed. Mandatory  core                            Drupal core compatiblity. Mandatory. drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 8
  • 9. multi site (msi, site) Legt eine Site innerhalb der Installation an. Examples:  drush ­r /path/to/drupal multi site Create the site 'example.com'    example.com within a 'files', a 'themes',    ­­create­directories=dir1,dir2,dir3 a 'modules' directory  and the  additional directories 'dir1',  'dir2' and 'dir3' in  /path/to/drupal/sites. Arguments:  Site­name Name of the site. Mandatory. Options:  ­­create­directories                   Comma seperated list of  aditional directories. drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 9
  • 10. multi status (mst) Status der Multisite-Installation. Erweiterter drush status ● Sites ● Sitecounter ● Verherige Drupal Versionen ● Core Status drush ­r /path/to/drupal multi status drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 10
  • 11. multi exec (mex) Batch Operationen über alle Sites. Examples: drush ­r /path/to/drupal multi exec        Arguments:   command                  The drush command to execute. For drush  commands with blanks like 'watchdog show' make sure to use single or double quotes.  Mandatory. Options:  ­­option  Option to pass to drush command. e.g.  '­­limit=20' for 'watchdog show'.  The number of messages to show.  Optional.  ­­argument               Argument to pass to drush command e.g.  'php' as type for 'watchdog delete' and   'watchdog show'.  Optional. drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 11
  • 12. multi sql dump (msq) SQL-Dumps über alle Sites im Batch-Mode. Examples: drush ­r /path/to/drupal multi sql dump ­­bzip2 ­­comment=before­ update­to­6.15  ­­destination=$HOME/db_backups Options:  ­­destination Absolute Path to the directory where to store  the sql dumps. Default /tmp. Optional.  ­­comment             Comment for filename. May contain alphanumics,  '­' and '_'. Optional.  ­­bzip2               Use bzip2 for compression of each sql dump.  Optional drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 12
  • 13. multi nagios (mna, nagios) Zur Benutzung als Nagios-Plugin. Überwacht die Drupal-Installation auf Core-Updates. Liefert Nachricht und Exit-Status. (0 = OK, 2 = Critical) drush ­r /path/to/drupal multi nagios drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 13
  • 14. multi drupalupdate (mdr, drupalupdate) Update des Drupal Core's über drush... drush ­r /path/to/drupal drupalupdate drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 14
  • 15. preg_match(): No ending delimiter '^' found Stolpersteine ● Drush Hooks durch Zufall entdeckt[1] ● Entfernung des Shebang's in drush.php[2][3] ● Umbennenung von dl nach download wg. der Einführung von Aliases in drush 2.1[3][4] ● Änderung in drush_scan_directory() in drush 2.1: Ersetzung von ereg() durch preg_match() ● Rückgabewert von _pm_get_update_info() ist bei 5.x und 6.x unterschiedlich drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 15
  • 16. Appendix [1] #349923 drush_invoke : a flexible API for hooking into any and all drush calls. http://drupal.org/node/349923 In drush 2.1 in Form von drush.api.php  dokumentiert [2] #586466 Drush.php is no longer directly executable (can interfere with backend invoke) http://drupal.org/node/586466 [3] #549494 Support for command aliases http://drupal.org/node/549494 [4] Blogbeitrag zum 2.1 Release von drush http://netzaffe.de/blog/2009/10/27/drush-6-x-2-1-release.html drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 16
  • 17. which; whatis; who >/dev/null Fragen? f.latzel@is-loesungen.de drush_multi | Florian Latzel | DrupalCamp Vienna 2009 | ISL Individuelle System Lösungen | 2009-11-28 17