# Utilities

This section describes the utility elements available in the custom namespace defined by the eacToolkit.xsd XML schema.

For more details, refer to the eacToolkit.xsd schema file distributed within the file eacHandlers.jar.

Element | Description
--- | ---
`copy` | This element defines a copy utility invocation, including the source and destination and whether or not the source pattern should be interpreted recursively. Multiple `copy` elements can be defined.
    <copy id="CopyData" src-host-id="ITLHost" dest-host-id="ITLHost"
        recursive="true" >
      <src>./data/incoming/*.txt</src>
      <dest>./data/processing/</dest>
    </copy>
`shell` | This element defines a shell utility invocation, including the command to execute and the host on which the command will be executed. Multiple `shell` elements can be defined.
    <shell id="ProcessData" host-id="ITLHost" >
      <command>perl procesDataFiles.pl ./data/incoming/data.txt</command>
    </shell>
`backup` | This element defines a backup utility invocation, including the directory to archive, how many archives should be saved and whether the archive should copy or move the source directory. Multiple `backup` elements can be defined.
    <backup id="ArchiveState" host-id="ITLHost" move="true" num-backups="5">
      <dir>C:\Endeca\apps\myApp\data\state</dir>
    </backup>
`rollback` | This element defines a rollback utility invocation, including the directory whose archive should be recovered. Multiple `rollback` elements can be defined.
    <rollback id="RollbackState" host-id="ITLHost">
      <dir>./data/state</dir>
    </rollback>