<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>André Aulich &#187; Downloads</title>
	<atom:link href="http://www.andre-aulich.de/en/perm/category/downloads/feed" rel="self" type="application/rss+xml" />
	<link>http://www.andre-aulich.de/en</link>
	<description>Digital Asset Management &#38; Workflow Automation</description>
	<lastBuildDate>Mon, 16 Jan 2012 12:42:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Let Macs use either Wi-Fi or Ethernet</title>
		<link>http://www.andre-aulich.de/en/perm/let-mac-users-either-use-wi-fi-or-ethernet</link>
		<comments>http://www.andre-aulich.de/en/perm/let-mac-users-either-use-wi-fi-or-ethernet#comments</comments>
		<pubDate>Mon, 26 Sep 2011 11:09:16 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Mac Client Management]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/?p=620</guid>
		<description><![CDATA[If you manage Mac OS X clients, it can be a challenge to manage laptops with access to external Wi-Fi or ethernet networks. For many companies it is important that their laptop users can access external networks for email and &#8230; <a href="http://www.andre-aulich.de/en/perm/let-mac-users-either-use-wi-fi-or-ethernet">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you manage Mac OS X clients, it can be a challenge to manage laptops with access to external Wi-Fi or ethernet networks.</p>
<p>For many companies it is important that their laptop users can access external networks for email and Internet access (e.g. at home, in the hotel or at a customer&#8217;s site) or because they need to access your customer&#8217;s server while they are on-site.</p>
<p>This means that most likely you let your users add network settings on their own.</p>
<p>Yet, in many companies you find both public Wi-Fi networks with internet access but limited access to a company&#8217;s internal network and an ethernet network with full access to the internal network but limited access to the outside world.</p>
<p>Due to security restrictions in these environments it is not allowed to build a bridge between the public Wi-Fi and the internal ethernet network.<br />
But if you let your users change network settings on their own, how do you make sure, that they don&#8217;t build that bridge, either on purpose or by accident?</p>
<p>One way to do this is to use a free tool like <a href="http://code.google.com/p/pymacadmin/">crankd</a>, which allows you to monitor your network devices and to trigger scripts whenever something changes. crankd has become part of the PyMacAdmin tools, so don&#8217;t get confused by the name PyMacAdmin.</p>
<p>In this little tutorial, we use crankd to monitor the ethernet and the Wi-Fi device in a MacBook Pro running Mac OS X 10.6.x. As soon as we get a working Wi-Fi connection, we deactivate our ethernet connection.</p>
<p>First, <a href="https://github.com/acdha/pymacadmin/zipball/master">download</a> and extract crankd.<br />
Cd into the extracted folder and invoke<br />
<code>sudo ./install-crankd.sh</code><br />
to install crankd on you machine.</p>
<p>Now, create the folder /usr/local/bin:<br />
<code>sudo mkdir -p /usr/local/bin</code></p>
<p>Create the file /usr/local/bin/toggleEthernet.sh:<br />
<code>sudo nano /usr/local/bin/toggleEthernet.sh</code></p>
<p>and copy the following code into it:<br />
<code><br />
#!/bin/bash<br />
AirPortStatus="$(/usr/sbin/networksetup -getairportnetwork en1)"<br />
# echo "${AirPortStatus}"<br />
if [[ "${AirPortStatus}" =~ "AirPort power is currently off." ]]; then<br />
	echo "AirPort not running. Activating Ethernet interface."<br />
	/usr/sbin/networksetup -setnetworkserviceenabled Ethernet on<br />
elif [[ "${AirPortStatus}" =~ "Current AirPort Network:" ]] || [[ "${AirPortStatus}" =~ "You are not associated with an AirPort network." ]]; then<br />
	echo "AirPort is running. Deactivating Ethernet interface."<br />
	/usr/sbin/networksetup -setnetworkserviceenabled Ethernet off<br />
fi<br />
echo "========================="</code><br />
(You can instead load the file from <a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/09/toggleEthernet.sh_.zip">here</a>.)</p>
<p>Save this script by typing Control-W, and close nano by typing Control-X.<br />
Connect your test machine to working ethernet and Wi-Fi networks and run the script to see if it works.</p>
<p>If it works as expected, copy <a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/09/de.andre-aulich.crankd.plist_.zip" title="crankd preference file">this file</a> (after unzipping it, of course) into /Library/Preferences/.</p>
<p>The interesting part in this crankd preference file is:<br />
<code><br />
SystemConfiguration<br />
State:/Network/Interface/en1/AirPort<br />
command: /usr/local/bin/toggleEthernet.sh<br />
</code><br />
which means, that crankd listens to our AirPort interface and runs the script /usr/local/bin/toggleEthernet.sh whenever something changes.</p>
<p>To start the crankd daemon during system startup, please download <a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/09/de.andre-aulich.runcrankd.plist_.zip" title="crankd launchd plist file">this file</a>, unzip it and copy it into /Library/LaunchDaemons.</p>
<p>Set the correct permissions:<br />
<code>sudo chmod 644 /Library/LaunchDaemons/de.andre-aulich.runcrankd.plist<br />
sudo chown root:wheel de.andre-aulich.runcrankd.plist</code></p>
<p>and load the job:</p>
<p><code>sudo launchctl load -w de.andre-aulich.runcrankd.plist</code></p>
<p>Now AirPort should be turned off automatically as soon as you activate your ethernet connection.</p>
<p><strong>Note: if someone connects a USB ethernet interface to your laptop, this will not be watched by our example crankd configuration. If you need to monitor multiple ethernet interfaces, you need to customize the configuration files described here.</strong></p>
<p>Using the tools mentioned here, you can allow your laptop users to manage their network settings on their own without building a bridge between internal ethernet network and public Wi-Fi connection.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/let-mac-users-either-use-wi-fi-or-ethernet/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extended fiprecon version available for free</title>
		<link>http://www.andre-aulich.de/en/perm/extended-fiprecon-version-available-for-free</link>
		<comments>http://www.andre-aulich.de/en/perm/extended-fiprecon-version-available-for-free#comments</comments>
		<pubDate>Mon, 27 Jun 2011 19:53:19 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Final Cut Server]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/?p=558</guid>
		<description><![CDATA[As Final Cut Server has been discontinued last week, I decided to release most of the Final Cut Server scripts I wrote in the last years into the wild. This is the first script including setup description. Maybe you already &#8230; <a href="http://www.andre-aulich.de/en/perm/extended-fiprecon-version-available-for-free">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As Final Cut Server has been discontinued last week, I decided to release most of the Final Cut Server scripts I wrote in the last years into the wild.<br />
This is the first script including setup description.</p>
<p>Maybe you already know fiprecon, my little middleware between Final Cut Server and Archiware PresSTORE, which allows Final Cut Server to archive media on tape.<br />
In this article I&#8217;ll explain how to install an extended version of fiprecon, which adds the following features to the basic version:</p>
<ul>
<li>recursive archiving and restoring of productions and FCP projects</li>
<li>stores id, label and barcode of the tape on which an asset has been archived in the asset&#8217;s FCSvr metadata</li>
<li>sends a mail to an administrator, if a tape needed for a restore process is not available. Includes a list of missing tapes, supports authorized mail sending</li>
</ul>
<p>Please make sure you try this in your lab first, to make sure everything works as expected.</p>
<p>Please download <a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/Files.zip">this zip file</a>, copy it to your computer and extract it.</p>
<p>Login to the Terminal using the same user credentials you used to install Final Cut Server.<br />
Now create /usr/local/fiprecon:<br />
<code>mkdir -p /usr/local/fiprecon</code><br />
Copy the contents of the fiprecon folder into it.</p>
<p>Install the launchd plist files into /Library/LaunchDaemons and set the permissions to<br />
<code>-rw-r--r-- 1 root wheel 429 May 4 2010 de.andre-aulich.aw2fcsvr.plist<br />
-rw-r--r-- 1 root wheel 429 May 4 2010 de.andre-aulich.fcsvr2aw.plist</code><br />
Launch them:<br />
<code>sudo launchctl load -w /Library/LaunchDaemons/de.andre-aulich.*</code><br />
Now run the config tool:<br />
<code>sudo /usr/local/fiprecon/bin/config.command</code></p>
<p>Add this line to your /etc/sudoers file:<br />
<code>ALL ALL = NOPASSWD: /Library/Application\ Support/Final\ Cut\ Server/Final\ Cut\ Server.bundle/Contents/MacOS/fcsvr_client</code></p>
<p>Add this line to your /etc/newsyslog.conf file:<br />
<code>/usr/local/fiprecon/logs/activity.log 777 10 100000 * J</code></p>
<p>Now open your FCSvr admin panel and create these items:<br />
<strong>Metadata fields:</strong><br />
Unicode Strings:<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/001.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/001-450x46.jpg" alt="" title="001" width="450" height="46" class="aligncenter size-medium wp-image-563" /></a><br />
Boolean:<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/002.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/002-450x47.jpg" alt="" title="002" width="450" height="47" class="aligncenter size-medium wp-image-564" /></a><br />
Category is always &#8220;None&#8221;.</p>
<p><strong>Metadata groups:</strong><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/003.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/003-450x34.jpg" alt="" title="003" width="450" height="34" class="aligncenter size-medium wp-image-565" /></a><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/004.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/004-450x285.jpg" alt="" title="004" width="450" height="285" class="aligncenter size-medium wp-image-566" /></a><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/005.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/005-450x35.jpg" alt="" title="005" width="450" height="35" class="aligncenter size-medium wp-image-567" /></a><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/006.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/006-450x287.jpg" alt="" title="006" width="450" height="287" class="aligncenter size-medium wp-image-568" /></a><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/007.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/007-450x291.jpg" alt="" title="007" width="450" height="291" class="aligncenter size-medium wp-image-569" /></a><br />
Please add the fields &#8220;Send FCP Project To Archive&#8221; and &#8220;Restore FCP project from Archive&#8221; to the Asset Filter MD group:<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/008.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/008-450x287.jpg" alt="" title="008" width="450" height="287" class="aligncenter size-medium wp-image-570" /></a><br />
Please add the fields &#8220;Send Production To Archive&#8221; and &#8220;Restore Production from Archive&#8221; to the Production Filter MD group:<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/009.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/009-450x293.jpg" alt="" title="009" width="450" height="293" class="aligncenter size-medium wp-image-571" /></a><br />
<strong>Responses:</strong><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/010.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/010-450x268.jpg" alt="" title="010" width="450" height="268" class="aligncenter size-medium wp-image-572" /></a><br />
Command path is /usr/local/fiprecon/bin/archivefcpproject.command<br />
Command Parameter is [Asset ID]<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/011.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/011-450x269.jpg" alt="" title="011" width="450" height="269" class="aligncenter size-medium wp-image-573" /></a><br />
Command path is /usr/local/fiprecon/bin/archiveproduction.command<br />
Command Parameter is [Production ID]<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/012.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/012-450x269.jpg" alt="" title="012" width="450" height="269" class="aligncenter size-medium wp-image-574" /></a><br />
Command path is /usr/local/fiprecon/bin/restorefcpproject.command<br />
Command Parameter is [Asset ID]<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/013.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/013-450x269.jpg" alt="" title="013" width="450" height="269" class="aligncenter size-medium wp-image-575" /></a><br />
Command path is /usr/local/fiprecon/bin/restoreproduction.command<br />
Command Parameter is [Production ID]</p>
<p><strong>Subscriptions:</strong><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/014.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/014-450x269.jpg" alt="" title="014" width="450" height="269" class="aligncenter size-medium wp-image-576" /></a><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/015.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/015-384x450.jpg" alt="" title="015" width="384" height="450" class="aligncenter size-medium wp-image-577" /></a><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/016.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/016-384x450.jpg" alt="" title="016" width="384" height="450" class="aligncenter size-medium wp-image-578" /></a><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/017.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/017-384x450.jpg" alt="" title="017" width="384" height="450" class="aligncenter size-medium wp-image-579" /></a><br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/018.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/018-450x268.jpg" alt="" title="018" width="450" height="268" class="aligncenter size-medium wp-image-580" /></a><br />
<strong>Devices:</strong><br />
Add /usr/local/fiprecon/bin/postarchive.command as a post-archive command to your archive device.<br />
Add /usr/local/fiprecon/bin/prerestore.command as pre-restore command.</p>
<p>Now fiprecon should work like this:<br />
1. You can still select one or more assets in the FCSvr client interface and send them to the archive.<br />
2. Instead, you can also select an FCP project asset and archive/restore entire FCP projects:<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/019.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/019-450x298.jpg" alt="" title="019" width="450" height="298" class="aligncenter size-medium wp-image-581" /></a><br />
3. The same works with productions:<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/020.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/020-450x298.jpg" alt="" title="020" width="450" height="298" class="aligncenter size-medium wp-image-582" /></a><br />
4. After PresSTORE wrote a file to tape, fiprecon will write the tape id back to the item&#8217;s FCSvr metadata:<br />
<a href="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/021.jpg"><img src="http://www.andre-aulich.de/en/wp-content/uploads/2011/06/021-450x298.jpg" alt="" title="021" width="450" height="298" class="aligncenter size-medium wp-image-583" /></a><br />
If you archive and restore the same asset multiple times, fiprecon pro will only store the tape ID of the latest archive process, as a normal restore process will always access the latest version only.<br />
I added some functionality to send authenticated emails if tapes needed for a restore process are missing. You will get the idea when you run the config tool.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/extended-fiprecon-version-available-for-free/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use file path and file name elements as searchable FCSvr metadata</title>
		<link>http://www.andre-aulich.de/en/perm/use-file-path-and-file-name-elements-as-searchable-fcsvr-metadata</link>
		<comments>http://www.andre-aulich.de/en/perm/use-file-path-and-file-name-elements-as-searchable-fcsvr-metadata#comments</comments>
		<pubDate>Wed, 02 Feb 2011 08:01:06 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Final Cut Server]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/?p=510</guid>
		<description><![CDATA[Imagine you have hundred thousands of videos and graphics sorted into folders and subfolders and want to move these data into Final Cut Server (FCSvr). If you create a FCSvr device and copy all these assets onto this device while &#8230; <a href="http://www.andre-aulich.de/en/perm/use-file-path-and-file-name-elements-as-searchable-fcsvr-metadata">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Imagine you have hundred thousands of videos and graphics sorted into folders and subfolders and want to move these data into Final Cut Server (FCSvr).<br />
If you create a FCSvr device and copy all these assets onto this device while preserving the folder structure you are used to, and let FCSvr scan this device, then each asset will store its relative path on this device in its metadata.</p>
<p>If e.g. a media file has the file path /Volumes/MyBigStorage/MigratedFiles/cars/german/bmw/Z4_in_summer_with_blue_sky.jpg, then both the file path elements and the file name hold valuable asset metadata which you might want to use in your FCSvr DB.<br />
If your FCSvr device has the file path /Volumes/MyBigStorage/MigratedFiles, then the relative path (called Location) stored in the asset&#8217;s metadata will be /cars/german/bmw, while the file name will be Z4_in_summer_with_blue_sky.jpg.</p>
<p>If now you search for</p>
<p>cars bmw</p>
<p>FCSvr won&#8217;t find this asset. You need to search for cars/german/bmw to find this asset, as FCSvr doesn&#8217;t support finding a single string when you search for multiple parts of it.</p>
<p>Your users expect to find the asset using the search string &#8220;cars bmw&#8221;, so we need to fix this. This article explains how to do this.</p>
<p><strong>PLEASE NOTE:</strong> If you want to mirror your filesystem within Final Cut Server to help your users find their content using the same folder structure they are used to from the filesystem, please get in touch with me. I&#8217;ve got scripts which scan the filesystem and tell FCSvr to create folders and subfolders as productions and subproductions to do exactly this.</p>
<p>So what are we going to do?<br />
Whenever a file is added to the FCSvr database, we want FCSvr to take the location and the filename, extract all valuable metadata as individual strings and add them to the metadata field &#8220;Keywords&#8221;. In our example, we would translate &#8220;/Volumes/MyBigStorage/MigratedFiles/cars/german/bmw/Z4_in_summer_with_blue_sky.jpg&#8221; into &#8220;cars german bmw Z4 in summer with blue sky jpg&#8221; and add this string to the Keywords field. We need to make sure that we don&#8217;t overwrite existing keywords.</p>
<p>To do this, please follow these steps:</p>
<ol>
<li>On the FCSvr machine, open the Terminal and get root permissions. Now type:<br />
<code> mkdir -p /usr/local/path2key/bin<br />
    mkdir -p /usr/local/path2key/logs<br />
    cd /usr/local/path2key/bin<br />
    touch path2key<br />
    chmod +x path2key<br />
    touch ../logs/path2key.log<br />
    chmod 777 ../logs/path2key.log</code></li>
<li>Now copy this text into /usr/local/path2key/bin/path:<br />
<code>#!/bin/bash<br />
#<br />
###################################################<br />
# path2key, copyright 2011 by www.andre-aulich.de #<br />
# This script accepts the asset id of a FCSvr     #<br />
# asset as its only parameter. It then extracts   #<br />
# the file path and adds all parts of the path as #<br />
# keywords to the asset's FCSvr metadata.         #<br />
###################################################</p>
<p># Define our variables and set up logging.<br />
PATH="/Library/Application Support/Final Cut Server/Final Cut Server.bundle/Contents/MacOS/":$PATH<br />
LOGFILE="/usr/local/path2key/logs/path2key.log"<br />
ASSETID="$1"<br />
echo "$(date)" >> "${LOGFILE}"<br />
if [[ "$1" == "" ]]; then<br />
	echo "No asset ID given. Stopping." >> "${LOGFILE}"<br />
	echo "---------------------------------------------------------" >> "${LOGFILE}"<br />
	exit 0<br />
fi</p>
<p>echo "Processing file path of asset ${ASSETID}." >> "${LOGFILE}"</p>
<p>PATHKEYWORDS="$(fcsvr_client getmd /asset/${ASSETID} | grep "PA_MD_CUST_FILENAME:\|CUST_LOCATION:" | sed -e 's/CUST_LOCATION://' -e 's/PA_MD_CUST_FILENAME://' -e 's/^[ \t]*//' -e 's/^\///' -e 's/[\.\\\/-]/ /g' -e 's/_/ /g' | awk '{printf("%s", $0 (NR==1 ? " " : " "))}')"</p>
<p>echo "Keywords extracted from file path are:" >> "${LOGFILE}"<br />
echo "${PATHKEYWORDS}" >> "${LOGFILE}"</p>
<p>FCSVRKEYWORDS="$(fcsvr_client getmd /asset/${ASSETID} | grep "CUST_KEYWORDS" | sed -e 's/CUST_KEYWORDS://'  -e 's/^[ \t]*//')"</p>
<p>echo "Keywords extracted from FCSvr are:" >> "${LOGFILE}"<br />
echo "${FCSVRKEYWORDS}" >> "${LOGFILE}"</p>
<p>COMPLETEKEYWORDS="$(echo ${FCSVRKEYWORDS} ${PATHKEYWORDS})"</p>
<p>echo "Complete keywords are:" >> "${LOGFILE}"<br />
echo "${COMPLETEKEYWORDS}" >> "${LOGFILE}"<br />
sudo fcsvr_client setmd /asset/"${ASSETID}" CUST_KEYWORDS="${COMPLETEKEYWORDS}" >> "${LOGFILE}"</p>
<p>echo "---------------------------------------------------------" >> "${LOGFILE}"</p>
<p></code><br />
or download <a href='http://www.andre-aulich.de/en/wp-content/uploads/2011/02/path2key.zip'>this file</a> instead and extract it. This script will later extract the metadata from the file path and the filename. It replaces . / \ &#8211; _ – against whitespaces.</li>
<li>Now open the FCSvr Administration window and create a new response using these data:
<ul>
<li>Response Action: Run an external script or command</li>
<li>Name: path2key</li>
<li>Command path: /usr/local/path2key/bin/path2key</li>
<li>Command Parameters: [Asset ID]</li>
</ul>
</li>
<li>Create a Subscription using these data:
<ul>
<li>Subscribe to: Asset</li>
<li>Name: path2key</li>
<li>Enabled: needs to be activated</li>
<li>Event Type Filter: Created</li>
<li>Response List: path2key</li>
</ul>
</li>
<li>To make sure our script can write to the FCSvr database, we need to add this line to /etc/sudoers/:<br />
<code> ALL ALL = NOPASSWD: /Library/Application\ Support/Final\ Cut\ Server/Final\ Cut\ Server.bundle/Contents/MacOS/fcsvr_client</code>
</li>
<li>You might need to restart the FCSvr client interface, and probably the FCSvr server, too.</li>
</ol>
<p>If now you upload some files to FCSvr, please look at their Keywords metadata field. The file path and file name elements should be added to the list of keywords, and now your users will be able to search for</p>
<p>bmw cars</p>
<p>to find your asset.</p>
<p>Hope this helps.</p>
<p>If you need more customization like this, I&#8217;d be happy to provide my services and help you develop your environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/use-file-path-and-file-name-elements-as-searchable-fcsvr-metadata/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fiprecon updated to version 1.1</title>
		<link>http://www.andre-aulich.de/en/perm/fiprecon-updated-to-version-1-1</link>
		<comments>http://www.andre-aulich.de/en/perm/fiprecon-updated-to-version-1-1#comments</comments>
		<pubDate>Wed, 26 Jan 2011 15:44:35 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Final Cut Server]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Xsan/StorNext]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/?p=506</guid>
		<description><![CDATA[I updated fiprecon to version 1.1. This version includes the following changes: Better handling of files with file names including double spaces (thanks for the hint, Matt Geller) Automatically deals with non default PresSTORE Archive Indices (thanks to Lars Petter &#8230; <a href="http://www.andre-aulich.de/en/perm/fiprecon-updated-to-version-1-1">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I updated fiprecon to version 1.1.</p>
<p>This version includes the following changes:</p>
<ul>
<li>Better handling of files with file names including double spaces (thanks for the hint, <a href="http://mmct.com/">Matt Geller</a>)</li>
<li>Automatically deals with non default PresSTORE Archive Indices (thanks to Lars Petter Ommundsen at <a href="http://www.video4.no/">Video 4</a>)</li>
<li>Better config tool handling</li>
<li>updated manual to reflect fsevents support of PresSTORE 4</li>
</ul>
<p>You can pick it up at <a href="http://www.andre-aulich.de/en/perm/connecting-final-cut-server-to-archiware-presstore">http://www.andre-aulich.de/en/perm/connecting-final-cut-server-to-archiware-presstore</a>.</p>
<p>I thought about adding these features, too:</p>
<ul>
<li>Preventing duplicates in the archive</li>
<li>Writing tape ID back into an asset&#8217;s metadata in FCSvr</li>
<li>Automatic creation of temporary Archive folder, responses, and metadata fields in FCSvr during config process</li>
</ul>
<p>Yet, right now I think that these features need to be customized for each installation, so I decided not to add it to a standard tool like fiprecon.</p>
<p>If you need one of these features, please feel free to <a href="http://www.andre-aulich.de/en/send-feedback">get in touch with me</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/fiprecon-updated-to-version-1-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Apache as reverse proxy for multiple web services (on 10.6 server)</title>
		<link>http://www.andre-aulich.de/en/perm/use-apache-as-reverse-proxy-for-multiple-web-services-on-10-6-server</link>
		<comments>http://www.andre-aulich.de/en/perm/use-apache-as-reverse-proxy-for-multiple-web-services-on-10-6-server#comments</comments>
		<pubDate>Tue, 18 Jan 2011 17:05:54 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Mac OS X Server]]></category>
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/?p=485</guid>
		<description><![CDATA[Imagine you use a Mac OS X Server machine to serve your website www.example.com, but you&#8217;d also like to use Rumpus for web-based file exchange with your clients, as well as a Kerio mail server. All on the same server. &#8230; <a href="http://www.andre-aulich.de/en/perm/use-apache-as-reverse-proxy-for-multiple-web-services-on-10-6-server">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Imagine you use a Mac OS X Server machine to serve your website www.example.com, but you&#8217;d also like to use Rumpus for web-based file exchange with your clients, as well as a Kerio mail server. All on the same server.</p>
<p>Both Rumpus and Kerio come with their own builtin webserver, so you can&#8217;t run all three services on the default port 80.</p>
<p>Your website should probably run on port 80 to make sure, everyone can access it without firewalls blocking access to it.</p>
<p>Rumpus and Kerio on the other hand, should better provide their web interfaces through an SSL secured connection, as people need to enter their passwords on these sites.</p>
<p>One thing you can do now, is to let Apache run on port 80 and serve your website only, while the Rumpus web interface runs on port 443 (the default SSL website), and the Kerio web interface on a non-default port.</p>
<p>Yet, if you want to make sure that both Rumpus and Kerio don&#8217;t get blocked by a firewall, you can use Apache as a reverse proxy, meaning, that Apache answers any port 80 and port 443 web requests, and then either answers requests itself (if someone asks for your website), or forwards requests to Rumpus or Kerio.</p>
<p>To do that, you can e.g. configure Kerio to serve its plain http web interface on port 81, while Rumpus serves its SSL web interface on port 8181.<br />
We are going to serve Rumpus using the URL https://rumpus.example.com, while Kerio will reply to https://kerio.example.com.<br />
We can&#8217;t use the same name for both services, as they use the same port, 443. Either the port or the site name need to be different.</p>
<p>Now create the SSL certificates for rumpus.example.com and kerio.example.com. Make sure, that your internal and external DNS resolve these names and point them to your server.</p>
<p>Write down the paths to the SSL keys. In my setup they look something like this:<br />
<code><br />
webserver:~ root# cd /etc/certificates/<br />
webserver:certificates root# ls -al<br />
-rw-r--r--    1 root  wheel      1196 Jan 18 11:32 rumpus.example.com.1BA4694BA149ABABE6991681AEA863B9980D6CCD.cert.pem<br />
-rw-r--r--    1 root  wheel      1196 Jan 18 11:32 rumpus.example.com.1BA4694BA149ABABE6991681AEA863B9980D6CCD.chain.pem<br />
-rw-r-----    1 root  certusers  2939 Jan 18 11:32 rumpus.example.com.1BA4694BA149ABABE6991681AEA863B9980D6CCD.concat.pem<br />
-rw-r-----    1 root  certusers  1743 Jan 18 11:32 rumpus.example.com.1BA4694BA149ABABE6991681AEA863B9980D6CCD.key.pem<br />
-rw-r--r--    1 root  wheel       977 Jan 17 22:37 kerio.example.com.A62BDDC503EC429F48F6AD7DA83BDE4584D9DF35.cert.pem<br />
-rw-r--r--    1 root  wheel       977 Jan 17 22:37 kerio.example.com.A62BDDC503EC429F48F6AD7DA83BDE4584D9DF35.chain.pem<br />
-rw-r-----    1 root  certusers  1940 Jan 17 22:37 kerio.example.com.A62BDDC503EC429F48F6AD7DA83BDE4584D9DF35.concat.pem<br />
-rw-r-----    1 root  certusers   963 Jan 17 22:37 kerio.example.com.A62BDDC503EC429F48F6AD7DA83BDE4584D9DF35.key.pem<br />
</code></p>
<p>Now create two empty websites in Server Admin => Web named kerio.example.com and rumpus.example.com. Make sure they use port 443 and the SSL certificates we just created.</p>
<p>On Mac OS X Server 10.6 change to /etc/apache2/sites and open the file 0002_any_443_rumpus.example.com.conf. Instead of 0002 you might find another number, but the rest of the file name should match.</p>
<p>Change the content to match <a href='http://www.andre-aulich.de/en/wp-content/uploads/2011/01/0002_any_443_rumpus.example.com_.txt'>0002_any_443_rumpus.example.com</a>.</p>
<p>Make sure you use the correct paths to your SSL certificate files. If you run Rumpus on any other port than 8181, make sure to reflect that in this config file.</p>
<p>Please notice, that this way Apache maintains an SSL connection to your web client, and it talks to Rumpus using SSL, too.</p>
<p>Now open the file 0003_any_443_kerio.example.com.conf. Again, instead of 0003 you might find another number. Change the content to match <a href='http://www.andre-aulich.de/en/wp-content/uploads/2011/01/0003_any_443_kerio.example.com_.txt'>0003_any_443_kerio.example.com</a>.</p>
<p>Now Apache accepts SSL secured connections from the outside world and forwards them to Kerio using plain http.</p>
<p>Now type<br />
<code><br />
sudo serveradmin stop web<br />
sudo serveradmin start web<br />
</code><br />
and try to connect.</p>
<p>If you got questions setting this up, please feel free to hire my services <img src='http://www.andre-aulich.de/en/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/use-apache-as-reverse-proxy-for-multiple-web-services-on-10-6-server/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connecting Final Cut Server To Archiware PresSTORE &#8211; new tool and documentation !</title>
		<link>http://www.andre-aulich.de/en/perm/connecting-final-cut-server-to-archiware-presstore</link>
		<comments>http://www.andre-aulich.de/en/perm/connecting-final-cut-server-to-archiware-presstore#comments</comments>
		<pubDate>Thu, 06 May 2010 11:48:32 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Final Cut Server]]></category>
		<category><![CDATA[Mac OS X Server]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Xsan/StorNext]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/?p=134</guid>
		<description><![CDATA[Please notice: There&#8217;s an extended version available at: http://www.andre-aulich.de/en/perm/extended-fiprecon-version-available-for-free. And it&#8217;s still free!&#8221; Many of us would like to use Final Cut Server (FCSvr) as an archive solution to write high res media files to tape (or disks). By default, &#8230; <a href="http://www.andre-aulich.de/en/perm/connecting-final-cut-server-to-archiware-presstore">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Please notice: There&#8217;s an extended version available at: <a href="http://www.andre-aulich.de/en/perm/extended-fiprecon-version-available-for-free">http://www.andre-aulich.de/en/perm/extended-fiprecon-version-available-for-free</a>. And it&#8217;s still free!&#8221;</strong></p>
<p>Many of us would like to use Final Cut Server (FCSvr) as an archive solution to write high res media files to tape (or disks).<br />
By default, FCSvr can write archives onto various file systems, but it can&#8217;t directly access tape drives.</p>
<p>Now download my little middleware tool <a href='http://www.andre-aulich.de/en/wp-content/uploads/2010/05/fiprecon_1_2.pkg.zip'>fiprecon</a> to connect Final Cut Server to <a href="http://www.archiware.com">Archiware PresSTORE</a> in a way which can look like this:</p>
<p><a href='http://www.andre-aulich.de/en/wp-content/uploads/2010/05/Topology.pdf'><img src="http://www.andre-aulich.de/en/wp-content/uploads/2010/05/Topology.pdf" alt="elgato_turboHD264_01" title="elgato_turboHD264_01" width="550" height="350" class="aligncenter size-medium wp-image-190" /></a></p>
<p>Make sure to install fiprecon on your Final Cut Server system. The PresSTORE server can be a separate machine which fiprecon controls over the network, but fiprecon supports running FCSvr and PresSTORE on the same machine, too.</p>
<p>After the installation, run the config tool using</p>
<p><code>sudo /usr/local/fiprecon/bin/config.command</code></p>
<p>and enter the paths /usr/local/fiprecon/bin/postarchive.command and /usr/local/fiprecon/bin/prerestore.command as postarchive and prerestore script paths of your archive volume in FCSvr.</p>
<p>I recommend to set the retry count in FCSvr to 10 and the timeout setting to 300 seconds.</p>
<p>I wrote a detailed documentation about &#8220;Backup and Archive setups with Final Cut Server, Xsan, and PresSTORE&#8221;, which can be downloaded <a href='http://www.andre-aulich.de/en/wp-content/uploads/2010/05/Whitepaper_FCSvr_PresSTORE_11.pdf'>here</a> and describes fiprecon in detail.</p>
<p>It also explains these topics:</p>
<ul>
<li>Archiving FCSvr assets on tape.</li>
<li>Automatic archiving after x days</li>
<li>Automatic archiving right after asset creation (great for moving video tape based archives into the digital world)</li>
</ul>
<p>Please feel free to use both the tools and the documentation – they come for free.<br />
If you need any customization, or any other kind of Final Cut Server consulting, please get in touch with me.</p>
<p>Looking forward for your feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/connecting-final-cut-server-to-archiware-presstore/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Final Cut Server presentation available as download</title>
		<link>http://www.andre-aulich.de/en/perm/final-cut-server-presentation-available-as-download</link>
		<comments>http://www.andre-aulich.de/en/perm/final-cut-server-presentation-available-as-download#comments</comments>
		<pubDate>Fri, 19 Mar 2010 10:01:58 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Final Cut Server]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Xsan/StorNext]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/?p=253</guid>
		<description><![CDATA[If you&#8217;d like a copy of the Final Cut Server presentation I will give in London at the VideoVisions event in London next week, here it is. Besides other topics the presentation deals with Rough Cut Editing FCSvr CLI XML &#8230; <a href="http://www.andre-aulich.de/en/perm/final-cut-server-presentation-available-as-download">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;d like a copy of the Final Cut Server presentation I will give in London at the VideoVisions event in London next week, <a href='http://www.andre-aulich.de/wp-content/uploads/2010/03/2010_03_18_FCSvr.pdf'>here</a> it is.</p>
<p>Besides other topics the presentation deals with</p>
<ul>
<li>Rough Cut Editing</li>
<li>FCSvr CLI</li>
<li>XML and data exchange with other MAMs</li>
<li>Automatic fetching of news feeds incl. XML metadata</li>
<li>Working with growing clips</li>
<li>Automatic XDCAM ingest</li>
<li>FCSvr Archiving to tape</li>
</ul>
<p>The presentation contains a great deal of demo parts, so not every topic will be explained in detail in the linked PDF file.</p>
<p>If you got any questions regarding the topics dealt with in the presentation, or if you&#8217;d like to hire me for one of these things, please use my feedback form to get in touch with me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/final-cut-server-presentation-available-as-download/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Nagios Monitoring Plugins available for Xsan and Xserves</title>
		<link>http://www.andre-aulich.de/en/perm/free-nagios-monitoring-plugins-available-for-xsan-and-xserves</link>
		<comments>http://www.andre-aulich.de/en/perm/free-nagios-monitoring-plugins-available-for-xsan-and-xserves#comments</comments>
		<pubDate>Fri, 14 Mar 2008 06:58:47 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Mac OS X Server]]></category>
		<category><![CDATA[Xsan/StorNext]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/perm/free-nagios-monitoring-plugins-available-for-xsan-and-xserves</guid>
		<description><![CDATA[Since 2006 my partner ConSol* and I offer 24/7 remote management services for Apple server and storage environments. One of the big challenges is to discover issues before they become problems. For this we use Nagios, an open source monitoring &#8230; <a href="http://www.andre-aulich.de/en/perm/free-nagios-monitoring-plugins-available-for-xsan-and-xserves">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since 2006 my partner <a href="http://www.consol.com">ConSol*</a> and I offer 24/7 remote management services for Apple server and storage environments.</p>
<p>One of the big challenges is to discover issues before they become problems.</p>
<p>For this we use Nagios, an open source monitoring solution, which monitors our customers&#8217; systems and informs us immediately if anything goes wrong.</p>
<p>Unluckily, in 2006 there were no appropriate Nagios plugins available which allowed for decent Xsan and Xserve monitoring, so ConSol* had to develop their own plugins, which we have been using at our client&#8217;s sites since then.</p>
<p>Today, you find an article at <a href="http://www.xsanity.com/article.php/20080312105449879">Xsanity</a>, which describes how to install these plugins.</p>
<p>You can download the two plugins for free from the <a href="http://www.consol.com/apple/nagios-plugins/">ConSol* Website</a>.</p>
<p><strong>Update:</strong> There&#8217;s also an article on the ConSol* site describing how to install and setup Nagios at <a href="http://www.consol.com/apple/tips-tricks/nagios-server-setup/">http://www.consol.com/apple/tips-tricks/nagios-server-setup/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/free-nagios-monitoring-plugins-available-for-xsan-and-xserves/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update: Configuring Webalizer for rotating Apache log files</title>
		<link>http://www.andre-aulich.de/en/perm/configuring-webalizer-for-rotating-apache-log-files</link>
		<comments>http://www.andre-aulich.de/en/perm/configuring-webalizer-for-rotating-apache-log-files#comments</comments>
		<pubDate>Fri, 25 May 2007 11:00:48 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Mac OS X Server]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/perm/configuring-webalizer-for-rotating-apache-log-files</guid>
		<description><![CDATA[If you use Mac OS X Server as a web server, you can use the Open Source software Webalizer to regularly analyze your Apache log files and to create a graphical overview of your audience&#8217;s web access. After installing the &#8230; <a href="http://www.andre-aulich.de/en/perm/configuring-webalizer-for-rotating-apache-log-files">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you use Mac OS X Server as a web server, you can use the Open Source software <a href="http://www.webalizer.org">Webalizer</a> to regularly analyze your Apache log files and to create a graphical overview of your audience&#8217;s web access.</p>
<p>After installing the Webalizer by copying the binary file webalizer to /usr/bin and creating the file /etc/webalizer.conf, you need to choose the appropriate settings. While this is documented on the webalizer site, it&#8217;s quite challenging to tell Webalizer how to deal with Apache&#8217;s rotating log files.</p>
<p>In Mac OS X Server, Apache regularly rotates its log files (depending on the settings you choose). This is good, because otherwise, with only one large log file, it could take hours for the webalizer to analyze this file. Yet, after each rotation, the log file has a new name.</p>
<p>There are basically three ways to deal with this: 1. you could change Apache&#8217;s behaviour of rotating log files. This isn&#8217;t as trivial as it sounds, so I decided not to go this way. 2. you can manually change the log file path in /etc/webalizer.conf. You need an ssh access to do this and it&#8217;s quite bothering me to do this regularly. Or, 3., you use the little script named <a href='/wp-content/webstat.zip' title='webstat'>webstat</a>, I just wrote, to automize this.</p>
<p>Just download and unzip it, then copy it to /usr/bin and make sure, that you uncomment the line with the log file path in your /etc/webalizer.conf.<br />
Now you can invoke the Webalizer by typing</p>
<p><code>/usr/bin/webstat</code></p>
<p>or by creating a cron or launchd job.</p>
<p>E.g., if you want to update your web statistic once an hour, a cron job that does this could look like this:</p>
<p><code>0      *       *       *       *       root    /usr/bin/webstat</code></p>
<p>If instead you prefer to use launchd to invoke our script, download <a href='http://www.andre-aulich.de/wp-content/uploads/2007/05/deandre-aulichwebalizerplist.zip' title='WebalizerLaunchDaemon'>this plist file</a> to your Desktop, unzip it, and copy it into</p>
<p><code>/Library/LaunchDaemons/</code></p>
<p>This file tells launchd to invoke our script every morning at 0:23 o&#8217;clock.<br />
Change this time to fit your needs.</p>
<p>Now load it into launchd:</p>
<p><code>sudo launchctl load -w /Library/LaunchDaemons/de.andre-aulich.webalizer.plist</code></p>
<p>If at the end of this command&#8217;s output</p>
<p><code>sudo launchctl list</code></p>
<p>you see something like this</p>
<p><code>de.andre-aulich.webalizer.plist</code></p>
<p>everything&#8217;s fine.</p>
<p>Check</p>
<p><code>sudo tail -f /var/log/system.log</code></p>
<p>to see if our new launchd job causes some trouble.<br />
If you don&#8217;t see any error messages, our script is running.</p>
<p>An example /etc/webalizer.conf file can look this this:</p>
<p><code><br />
#<br />
# Sample Webalizer configuration file<br />
# Copyright 1997-2000 by Bradford L. Barrett (brad@mrunix.net)<br />
#<br />
# Distributed under the GNU General Public License.  See the<br />
# files "Copyright" and "COPYING" provided with the webalizer<br />
# distribution for additional information.<br />
#<br />
# This is a sample configuration file for the Webalizer (ver 2.01)<br />
# Lines starting with pound signs '#' are comment lines and are<br />
# ignored.  Blank lines are skipped as well.  Other lines are considered<br />
# as configuration lines, and have the form "ConfigOption  Value" where<br />
# ConfigOption is a valid configuration keyword, and Value is the value<br />
# to assign that configuration option.  Invalid keyword/values are<br />
# ignored, with appropriate warnings being displayed.  There must be<br />
# at least one space or tab between the keyword and its value.<br />
#<br />
# As of version 0.98, The Webalizer will look for a 'default' configuration<br />
# file named "webalizer.conf" in the current directory, and if not found<br />
# there, will look for "/etc/webalizer.conf".</p>
<p># LogFile defines the web server log file to use.  If not specified<br />
# here or on on the command line, input will default to STDIN.  If<br />
# the log filename ends in '.gz' (ie: a gzip compressed file), it will<br />
# be decompressed on the fly as it is being read.</p>
<p># LogFile        /var/log/httpd/access_log.1132790400</p>
<p># LogType defines the log type being processed.  Normally, the Webalizer<br />
# expects a CLF or Combined web server log as input.  Using this option,<br />
# you can process ftp logs as well (xferlog as produced by wu-ftp and<br />
# others), or Squid native logs.  Values can be 'clf', 'ftp' or 'squid',<br />
# with 'clf' the default.</p>
<p>LogType	clf</p>
<p># OutputDir is where you want to put the output files.  This should<br />
# should be a full path name, however relative ones might work as well.<br />
# If no output directory is specified, the current directory will be used.</p>
<p>OutputDir      /Library/WebServer/Documents/stats/</p>
<p># HistoryName allows you to specify the name of the history file produced<br />
# by the Webalizer.  The history file keeps the data for up to 12 months<br />
# worth of logs, used for generating the main HTML page (index.html).<br />
# The default is a file named "webalizer.hist", stored in the specified<br />
# output directory.  If you specify just the filename (without a path),<br />
# it will be kept in the specified output directory.  Otherwise, the path<br />
# is relative to the output directory, unless absolute (leading /).</p>
<p>HistoryName	webalizer.hist</p>
<p># Incremental processing allows multiple partial log files to be used<br />
# instead of one huge one.  Useful for large sites that have to rotate<br />
# their log files more than once a month.  The Webalizer will save its<br />
# internal state before exiting, and restore it the next time run, in<br />
# order to continue processing where it left off.  This mode also causes<br />
# The Webalizer to scan for and ignore duplicate records (records already<br />
# processed by a previous run).  See the README file for additional<br />
# information.  The value may be 'yes' or 'no', with a default of 'no'.<br />
# The file 'webalizer.current' is used to store the current state data,<br />
# and is located in the output directory of the program (unless changed<br />
# with the IncrementalName option below).  Please read at least the section<br />
# on Incremental processing in the README file before you enable this option.</p>
<p>Incremental	yes</p>
<p># IncrementalName allows you to specify the filename for saving the<br />
# incremental data in.  It is similar to the HistoryName option where the<br />
# name is relative to the specified output directory, unless an absolute<br />
# filename is specified.  The default is a file named "webalizer.current"<br />
# kept in the normal output directory.  If you don't specify "Incremental"<br />
# as 'yes' then this option has no meaning.</p>
<p>IncrementalName	webalizer.current</p>
<p># ReportTitle is the text to display as the title.  The hostname<br />
# (unless blank) is appended to the end of this string (seperated with<br />
# a space) to generate the final full title string.<br />
# Default is (for english) "Usage Statistics for".</p>
<p>ReportTitle    Usage Statistics for</p>
<p># HostName defines the hostname for the report.  This is used in<br />
# the title, and is prepended to the URL table items.  This allows<br />
# clicking on URL's in the report to go to the proper location in<br />
# the event you are running the report on a 'virtual' web server,<br />
# or for a server different than the one the report resides on.<br />
# If not specified here, or on the command line, webalizer will<br />
# try to get the hostname via a uname system call.  If that fails,<br />
# it will default to "localhost".</p>
<p>HostName      www.andre-aulich.de</p>
<p># HTMLExtension allows you to specify the filename extension to use<br />
# for generated HTML pages.  Normally, this defaults to "html", but<br />
# can be changed for sites who need it (like for PHP embeded pages).</p>
<p>HTMLExtension  html</p>
<p># PageType lets you tell the Webalizer what types of URL's you<br />
# consider a 'page'.  Most people consider html and cgi documents<br />
# as pages, while not images and audio files.  If no types are<br />
# specified, defaults will be used ('htm*', 'cgi' and HTMLExtension<br />
# if different for web logs, 'txt' for ftp logs).</p>
<p>PageType	htm*<br />
PageType	cgi<br />
#PageType	phtml<br />
#PageType	php3<br />
#PageType	pl</p>
<p># UseHTTPS should be used if the analysis is being run on a<br />
# secure server, and links to urls should use 'https://' instead<br />
# of the default 'http://'.  If you need this, set it to 'yes'.<br />
# Default is 'no'.  This only changes the behaviour of the 'Top<br />
# URL's' table.</p>
<p>UseHTTPS       yes</p>
<p># DNSCache specifies the DNS cache filename to use for reverse DNS lookups.<br />
# This file must be specified if you wish to perform name lookups on any IP<br />
# addresses found in the log file.  If an absolute path is not given as<br />
# part of the filename (ie: starts with a leading '/'), then the name is<br />
# relative to the default output directory.  See the DNS.README file for<br />
# additional information.</p>
<p>DNSCache	dns_cache.db</p>
<p># DNSChildren allows you to specify how many "children" processes are<br />
# run to perform DNS lookups to create or update the DNS cache file.<br />
# If a number is specified, the DNS cache file will be created/updated<br />
# each time the Webalizer is run, immediately prior to normal processing,<br />
# by running the specified number of "children" processes to perform<br />
# DNS lookups.  If used, the DNS cache filename MUST be specified as<br />
# well.  The default value is zero (0), which disables DNS cache file<br />
# creation/updates at run time.  The number of children processes to<br />
# run may be anywhere from 1 to 100, however a large number may effect<br />
# normal system operations.  Reasonable values should be between 5 and<br />
# 20.  See the DNS.README file for additional information.</p>
<p>DNSChildren	10</p>
<p># HTMLPre defines HTML code to insert at the very beginning of the<br />
# file.  Default is the DOCTYPE line shown below.  Max line length<br />
# is 80 characters, so use multiple HTMLPre lines if you need more.</p>
<p>#HTMLPre < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"></p>
<p># HTMLHead defines HTML code to insert within the <head></head><br />
# block, immediately after the <title> line.  Maximum line length<br />
# is 80 characters, so use multiple lines if needed.</p>
<p>#HTMLHead <meta NAME="author" CONTENT="The Webalizer"></p>
<p># HTMLBody defined the HTML code to be inserted, starting with the<br />
# <body> tag.  If not specified, the default is shown below.  If<br />
# used, you MUST include your own </body><body> tag as the first line.<br />
# Maximum line length is 80 char, use multiple lines if needed.</p>
<p>#HTMLBody </body><body BGCOLOR="#E8E8E8" TEXT="#000000" LINK="#0000FF" VLINK="#FF0000"></p>
<p># HTMLPost defines the HTML code to insert immediately before the<br />
# first<br />
<hr /> on the document, which is just after the title and<br />
# "summary period"-"Generated on:" lines.  If anything, this should<br />
# be used to clean up in case an image was inserted with HTMLBody.<br />
# As with HTMLHead, you can define as many of these as you want and<br />
# they will be inserted in the output stream in order of apperance.<br />
# Max string size is 80 characters.  Use multiple lines if you need to.</p>
<p>#HTMLPost 	<br CLEAR="all"/></p>
<p># HTMLTail defines the HTML code to insert at the bottom of each<br />
# HTML document, usually to include a link back to your home<br />
# page or insert a small graphic.  It is inserted as a table<br />
# data element (ie:
<td> your code here </td>
<p>) and is right<br />
# alligned with the page.  Max string size is 80 characters.</p>
<p>#HTMLTail <img SRC="msfree.png" ALT="100% Micro$oft free!"/></p>
<p># HTMLEnd defines the HTML code to add at the very end of the<br />
# generated files.  It defaults to what is shown below.  If<br />
# used, you MUST specify the </body> and  closing tags<br />
# as the last lines.  Max string length is 80 characters.</p>
<p>#HTMLEnd </p>
<p># The Quiet option suppresses output messages... Useful when run<br />
# as a cron job to prevent bogus e-mails.  Values can be either<br />
# "yes" or "no".  Default is "no".  Note: this does not suppress<br />
# warnings and errors (which are printed to stderr).</p>
<p>Quiet		yes</p>
<p># ReallyQuiet will supress all messages including errors and<br />
# warnings.  Values can be 'yes' or 'no' with 'no' being the<br />
# default.  If 'yes' is used here, it cannot be overriden from<br />
# the command line, so use with caution.  A value of 'no' has<br />
# no effect.</p>
<p>#ReallyQuiet	no</p>
<p># TimeMe allows you to force the display of timing information<br />
# at the end of processing.  A value of 'yes' will force the<br />
# timing information to be displayed.  A value of 'no' has no<br />
# effect.</p>
<p>#TimeMe		no</p>
<p># GMTTime allows reports to show GMT (UTC) time instead of local<br />
# time.  Default is to display the time the report was generated<br />
# in the timezone of the local machine, such as EDT or PST.  This<br />
# keyword allows you to have times displayed in UTC instead.  Use<br />
# only if you really have a good reason, since it will probably<br />
# screw up the reporting periods by however many hours your local<br />
# time zone is off of GMT.</p>
<p>#GMTTime		no</p>
<p># Debug prints additional information for error messages.  This<br />
# will cause webalizer to dump bad records/fields instead of just<br />
# telling you it found a bad one.   As usual, the value can be<br />
# either "yes" or "no".  The default is "no".  It shouldn't be<br />
# needed unless you start getting a lot of Warning or Error<br />
# messages and want to see why.  (Note: warning and error messages<br />
# are printed to stderr, not stdout like normal messages).</p>
<p>#Debug		no</p>
<p># FoldSeqErr forces the Webalizer to ignore sequence errors.<br />
# This is useful for Netscape and other web servers that cache<br />
# the writing of log records and do not guarentee that they<br />
# will be in chronological order.  The use of the FoldSeqErr<br />
# option will cause out of sequence log records to be treated<br />
# as if they had the same time stamp as the last valid record.<br />
# Default is to ignore out of sequence log records.</p>
<p>#FoldSeqErr	no</p>
<p># VisitTimeout allows you to set the default timeout for a visit<br />
# (sometimes called a 'session').  The default is 30 minutes,<br />
# which should be fine for most sites.<br />
# Visits are determined by looking at the time of the current<br />
# request, and the time of the last request from the site.  If<br />
# the time difference is greater than the VisitTimeout value, it<br />
# is considered a new visit, and visit totals are incremented.<br />
# Value is the number of seconds to timeout (default=1800=30min)</p>
<p>#VisitTimeout	1800</p>
<p># IgnoreHist shouldn't be used in a config file, but it is here<br />
# just because it might be usefull in certain situations.  If the<br />
# history file is ignored, the main "index.html" file will only<br />
# report on the current log files contents.  Usefull only when you<br />
# want to reproduce the reports from scratch.  USE WITH CAUTION!<br />
# Valid values are "yes" or "no".  Default is "no".</p>
<p>#IgnoreHist	no</p>
<p># Country Graph allows the usage by country graph to be disabled.<br />
# Values can be 'yes' or 'no', default is 'yes'.</p>
<p>#CountryGraph	yes</p>
<p># DailyGraph and DailyStats allows the daily statistics graph<br />
# and statistics table to be disabled (not displayed).  Values<br />
# may be "yes" or "no". Default is "yes".</p>
<p>#DailyGraph	yes<br />
#DailyStats	yes</p>
<p># HourlyGraph and HourlyStats allows the hourly statistics graph<br />
# and statistics table to be disabled (not displayed).  Values<br />
# may be "yes" or "no". Default is "yes".</p>
<p>#HourlyGraph	yes<br />
#HourlyStats	yes</p>
<p># GraphLegend allows the color coded legends to be turned on or off<br />
# in the graphs.  The default is for them to be displayed.  This only<br />
# toggles the color coded legends, the other legends are not changed.<br />
# If you think they are hideous and ugly, say 'no' here <img src='http://www.andre-aulich.de/en/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>#GraphLegend	yes</p>
<p># GraphLines allows you to have index lines drawn behind the graphs.<br />
# I personally am not crazy about them, but a lot of people requested<br />
# them and they weren't a big deal to add.  The number represents the<br />
# number of lines you want displayed.  Default is 2, you can disable<br />
# the lines by using a value of zero ('0').  [max is 20]<br />
# Note, due to rounding errors, some values don't work quite right.<br />
# The lower the better, with 1,2,3,4,6 and 10 producing nice results.</p>
<p>#GraphLines	2</p>
<p># The "Top" options below define the number of entries for each table.<br />
# Defaults are Sites=30, URL's=30, Referrers=30 and Agents=15, and<br />
# Countries=30. TopKSites and TopKURLs (by KByte tables) both default<br />
# to 10, as do the top entry/exit tables (TopEntry/TopExit).  The top<br />
# search strings and usernames default to 20.  Tables may be disabled<br />
# by using zero (0) for the value.</p>
<p>#TopSites        30<br />
#TopKSites       10<br />
#TopURLs         30<br />
#TopKURLs        10<br />
#TopReferrers    30<br />
#TopAgents       15<br />
#TopCountries    30<br />
#TopEntry        10<br />
#TopExit         10<br />
#TopSearch       20<br />
#TopUsers        20</p>
<p># The All* keywords allow the display of all URL's, Sites, Referrers<br />
# User Agents, Search Strings and Usernames.  If enabled, a seperate<br />
# HTML page will be created, and a link will be added to the bottom<br />
# of the appropriate "Top" table.  There are a couple of conditions<br />
# for this to occur..  First, there must be more items than will fit<br />
# in the "Top" table (otherwise it would just be duplicating what is<br />
# already displayed).  Second, the listing will only show those items<br />
# that are normally visable, which means it will not show any hidden<br />
# items.  Grouped entries will be listed first, followed by individual<br />
# items.  The value for these keywords can be either 'yes' or 'no',<br />
# with the default being 'no'.  Please be aware that these pages can<br />
# be quite large in size, particularly the sites page,  and seperate<br />
# pages are generated for each month, which can consume quite a lot<br />
# of disk space depending on the traffic to your site.</p>
<p>AllSites	yes<br />
AllURLs		yes<br />
AllReferrers	yes<br />
AllAgents	yes<br />
AllSearchStr	yes<br />
#AllUsers       no</p>
<p># The Webalizer normally strips the string 'index.' off the end of<br />
# URL's in order to consolidate URL totals.  For example, the URL<br />
# /somedir/index.html is turned into /somedir/ which is really the<br />
# same URL.  This option allows you to specify additional strings<br />
# to treat in the same way.  You don't need to specify 'index.' as<br />
# it is always scanned for by The Webalizer, this option is just to<br />
# specify _additional_ strings if needed.  If you don't need any,<br />
# don't specify any as each string will be scanned for in EVERY<br />
# log record... A bunch of them will degrade performance.  Also,<br />
# the string is scanned for anywhere in the URL, so a string of<br />
# 'home' would turn the URL /somedir/homepages/brad/home.html into<br />
# just /somedir/ which is probably not what was intended.</p>
<p>#IndexAlias     home.htm<br />
#IndexAlias	homepage.htm</p>
<p># The Hide*, Group* and Ignore* and Include* keywords allow you to<br />
# change the way Sites, URL's, Referrers, User Agents and Usernames<br />
# are manipulated.  The Ignore* keywords will cause The Webalizer to<br />
# completely ignore records as if they didn't exist (and thus not<br />
# counted in the main site totals).  The Hide* keywords will prevent<br />
# things from being displayed in the 'Top' tables, but will still be<br />
# counted in the main totals.  The Group* keywords allow grouping<br />
# similar objects as if they were one.  Grouped records are displayed<br />
# in the 'Top' tables and can optionally be displayed in BOLD and/or<br />
# shaded. Groups cannot be hidden, and are not counted in the main<br />
# totals. The Group* options do not, by default, hide all the items<br />
# that it matches.  If you want to hide the records that match (so just<br />
# the grouping record is displayed), follow with an identical Hide*<br />
# keyword with the same value.  (see example below)  In addition,<br />
# Group* keywords may have an optional label which will be displayed<br />
# instead of the keywords value.  The label should be seperated from<br />
# the value by at least one 'white-space' character, such as a space<br />
# or tab.<br />
#<br />
# The value can have either a leading or trailing '*' wildcard<br />
# character.  If no wildcard is found, a match can occur anywhere<br />
# in the string. Given a string "www.yourmama.com", the values "your",<br />
# "*mama.com" and "www.your*" will all match.</p>
<p># Your own site should be hidden<br />
HideSite	andre-aulich.de<br />
HideSite	10.0.1.*<br />
HideSite	localhost<br />
HideSite        googlebot.com</p>
<p># Your own site gives most referrals<br />
HideReferrer	andre-aulich.de</p>
<p># This one hides non-referrers ("-" Direct requests)<br />
HideReferrer	Direct Request</p>
<p># Usually you want to hide these<br />
HideURL		*.gif<br />
HideURL		*.GIF<br />
HideURL		*.jpg<br />
HideURL		*.JPG<br />
HideURL		*.png<br />
HideURL		*.PNG<br />
HideURL		*.ra</p>
<p># Hiding agents is kind of futile<br />
#HideAgent	RealPlayer</p>
<p># You can also hide based on authenticated username<br />
#HideUser	root<br />
#HideUser	admin</p>
<p># Grouping options<br />
#GroupURL	/cgi-bin/*	CGI Scripts<br />
#GroupURL	/images/*	Images<br />
GroupURL	/feed/<br />
GroupURL	/en/feed/</p>
<p>GroupSite	googlebot.com<br />
#GroupSite	*.compuserve.com</p>
<p>#GroupReferrer	yahoo.com/	Yahoo!<br />
#GroupReferrer	excite.com/     Excite<br />
#GroupReferrer	infoseek.com/   InfoSeek<br />
#GroupReferrer	webcrawler.com/ WebCrawler</p>
<p>#GroupUser      root            Admin users<br />
#GroupUser      admin           Admin users<br />
#GroupUser      wheel           Admin users</p>
<p># The following is a great way to get an overall total<br />
# for browsers, and not display all the detail records.<br />
# (You should use MangleAgent to refine further...)</p>
<p>#GroupAgent	MSIE		Micro$oft Internet Exploder<br />
#HideAgent	MSIE<br />
#GroupAgent	Mozilla		Netscape<br />
#HideAgent	Mozilla<br />
#GroupAgent	Lynx*		Lynx<br />
#HideAgent	Lynx*</p>
<p># HideAllSites allows forcing individual sites to be hidden in the<br />
# report.  This is particularly useful when used in conjunction<br />
# with the "GroupDomain" feature, but could be useful in other<br />
# situations as well, such as when you only want to display grouped<br />
# sites (with the GroupSite keywords...).  The value for this<br />
# keyword can be either 'yes' or 'no', with 'no' the default,<br />
# allowing individual sites to be displayed.</p>
<p>#HideAllSites	no</p>
<p># The GroupDomains keyword allows you to group individual hostnames<br />
# into their respective domains.  The value specifies the level of<br />
# grouping to perform, and can be thought of as 'the number of dots'<br />
# that will be displayed.  For example, if a visiting host is named<br />
# cust1.tnt.mia.uu.net, a domain grouping of 1 will result in just<br />
# "uu.net" being displayed, while a 2 will result in "mia.uu.net".<br />
# The default value of zero disable this feature.  Domains will only<br />
# be grouped if they do not match any existing "GroupSite" records,<br />
# which allows overriding this feature with your own if desired.</p>
<p>GroupDomains	0</p>
<p># The GroupShading allows grouped rows to be shaded in the report.<br />
# Useful if you have lots of groups and individual records that<br />
# intermingle in the report, and you want to diferentiate the group<br />
# records a little more.  Value can be 'yes' or 'no', with 'yes'<br />
# being the default.</p>
<p>GroupShading	yes</p>
<p># GroupHighlight allows the group record to be displayed in BOLD.<br />
# Can be either 'yes' or 'no' with the default 'yes'.</p>
<p>#GroupHighlight	yes</p>
<p># The Ignore* keywords allow you to completely ignore log records based<br />
# on hostname, URL, user agent, referrer or username.  I hessitated in<br />
# adding these, since the Webalizer was designed to generate _accurate_<br />
# statistics about a web servers performance.  By choosing to ignore<br />
# records, the accuracy of reports become skewed, negating why I wrote<br />
# this program in the first place.  However, due to popular demand, here<br />
# they are.  Use the same as the Hide* keywords, where the value can have<br />
# a leading or trailing wildcard '*'.  Use at your own risk <img src='http://www.andre-aulich.de/en/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>IgnoreSite	andre-aulich.de<br />
IgnoreSite	10.0.1.*<br />
#IgnoreURL	/test*<br />
#IgnoreReferrer	file:/*<br />
#IgnoreAgent	RealPlayer<br />
#IgnoreUser     root</p>
<p># The Include* keywords allow you to force the inclusion of log records<br />
# based on hostname, URL, user agent, referrer or username.  They take<br />
# precidence over the Ignore* keywords.  Note: Using Ignore/Include<br />
# combinations to selectivly process parts of a web site is _extremely<br />
# inefficent_!!! Avoid doing so if possible (ie: grep the records to a<br />
# seperate file if you really want that kind of report).</p>
<p># Example: Only show stats on Joe User's pages...<br />
#IgnoreURL	*<br />
#IncludeURL	~joeuser*</p>
<p># Or based on an authenticated username<br />
#IgnoreUser     *<br />
#IncludeUser    someuser</p>
<p># The MangleAgents allows you to specify how much, if any, The Webalizer<br />
# should mangle user agent names.  This allows several levels of detail<br />
# to be produced when reporting user agent statistics.  There are six<br />
# levels that can be specified, which define different levels of detail<br />
# supression.  Level 5 shows only the browser name (MSIE or Mozilla)<br />
# and the major version number.  Level 4 adds the minor version number<br />
# (single decimal place).  Level 3 displays the minor version to two<br />
# decimal places.  Level 2 will add any sub-level designation (such<br />
# as Mozilla/3.01Gold or MSIE 3.0b).  Level 1 will attempt to also add<br />
# the system type if it is specified.  The default Level 0 displays the<br />
# full user agent field without modification and produces the greatest<br />
# amount of detail.  User agent names that can't be mangled will be<br />
# left unmodified.</p>
<p>MangleAgents    1</p>
<p># The SearchEngine keywords allow specification of search engines and<br />
# their query strings on the URL.  These are used to locate and report<br />
# what search strings are used to find your site.  The first word is<br />
# a substring to match in the referrer field that identifies the search<br />
# engine, and the second is the URL variable used by that search engine<br />
# to define it's search terms.</p>
<p>SearchEngine	yahoo.com	p=<br />
SearchEngine	altavista.com	q=<br />
SearchEngine	google.com	q=<br />
SearchEngine	eureka.com	q=<br />
SearchEngine	lycos.com	query=<br />
SearchEngine	hotbot.com	MT=<br />
SearchEngine	msn.com		MT=<br />
SearchEngine	infoseek.com	qt=<br />
SearchEngine	webcrawler	searchText=<br />
SearchEngine	excite		search=<br />
SearchEngine	netscape.com	search=<br />
SearchEngine	mamma.com	query=<br />
SearchEngine	alltheweb.com	query=<br />
SearchEngine	northernlight.com  qr=</p>
<p># The Dump* keywords allow the dumping of Sites, URL's, Referrers<br />
# User Agents, Usernames and Search strings to seperate tab delimited<br />
# text files, suitable for import into most database or spreadsheet<br />
# programs.</p>
<p># DumpPath specifies the path to dump the files.  If not specified,<br />
# it will default to the current output directory.  Do not use a<br />
# trailing slash ('/').</p>
<p>#DumpPath	/var/lib/httpd/logs</p>
<p># The DumpHeader keyword specifies if a header record should be<br />
# written to the file.  A header record is the first record of the<br />
# file, and contains the labels for each field written.  Normally,<br />
# files that are intended to be imported into a database system<br />
# will not need a header record, while spreadsheets usually do.<br />
# Value can be either 'yes' or 'no', with 'no' being the default.</p>
<p>#DumpHeader	no</p>
<p># DumpExtension allow you to specify the dump filename extension<br />
# to use.  The default is "tab", but some programs are pickey about<br />
# the filenames they use, so you may change it here (for example,<br />
# some people may prefer to use "csv").</p>
<p>#DumpExtension	tab</p>
<p># These control the dumping of each individual table.  The value<br />
# can be either 'yes' or 'no'.. the default is 'no'.</p>
<p>#DumpSites	no<br />
#DumpURLs	no<br />
#DumpReferrers	no<br />
#DumpAgents	no<br />
#DumpUsers	no<br />
#DumpSearchStr  no</p>
<p># End of configuration file...  Have a nice day!<br />
</meta></title></code></p>
<p>In this example the webalizer writes the stat pages into /Library/WebServer/Documents/stats, so Mac OS X Server&#8217;s default web directory needs a subdirectory calles &#8216;stats&#8217;.</p>
<p>Of course you can protect this subpage with a password using a realm in Server Admin.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/configuring-webalizer-for-rotating-apache-log-files/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prevent keeping file permissions if copying files from read-only archives to your Desktop (UPDATED!)</title>
		<link>http://www.andre-aulich.de/en/perm/prevent-keeping-file-permissions-if-copying-files-from-read-only-archives-to-your-desktop</link>
		<comments>http://www.andre-aulich.de/en/perm/prevent-keeping-file-permissions-if-copying-files-from-read-only-archives-to-your-desktop#comments</comments>
		<pubDate>Sat, 11 Nov 2006 10:27:46 +0000</pubDate>
		<dc:creator>André Aulich</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Mac OS X Server]]></category>

		<guid isPermaLink="false">http://www.andre-aulich.de/en/perm/prevent-keeping-file-permissions-if-copying-files-from-read-only-archives-to-your-desktop</guid>
		<description><![CDATA[If you work with a Mac OS X Server 10.4.x AFP server and Tiger clients, and you set up a shared folder with read-only permissions for your users, Mac OS X will preserve the read-only permissions if you copy files &#8230; <a href="http://www.andre-aulich.de/en/perm/prevent-keeping-file-permissions-if-copying-files-from-read-only-archives-to-your-desktop">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you work with a Mac OS X Server 10.4.x AFP server and Tiger clients, and you set up a shared folder with read-only permissions for your users, Mac OS X will preserve the read-only permissions if you copy files and folders from your file server to your Desktop, no matter if it&#8217;s a local or a server-based home directory.</p>
<p>While preserving as much information as possible is really useful, in some cases you might want to have an archive folder with write permissions for administrators and read-only permissions for users. I&#8217;ve seen prepress environments in which artists are supposed to copy files from a read-only volume to their local Desktop where they can then edit the copies. Yet, in a standard Mac OS X Server / Mac OS X environment they can not edit these files anymore.</p>
<p>To change this, we can set up an ACL entry for each user&#8217;s Desktop folder, that lets each user edit any file or folder on his or her own Desktop.</p>
<p>Download the following script, extract it, and run it on your server if you use server-based home directories or on your client machines if you use local home directories. If you work with portable home directories, I guess that invoking this script on your server only should be sufficient, too.</p>
<p>Here&#8217;s the script:<br />
<a id="p59" rel="attachment" href="http://www.andre-aulich.de/en/perm/prevent-keeping-file-permissions-if-copying-files-from-read-only-archives-to-your-desktop/setdesktopaclszip/" title="SetDesktopACLs.zip">SetDesktopACLs.zip</a><br />
After extracting it, open Terminal and type:</p>
<p><code>sudo -s</code></p>
<p>Enter your password, drag the extracted file into the Terminal application and press Enter.<br />
If your home directories are not located in /Users, please change the path in the script.<br />
In case ACLs are not activated on your client yet (they are turned off by default), the script automatically turns them on by invoking</p>
<p><code>fsaclctl -p / -e</code></p>
<p>If you have multiple clients, you can select them in ARD, choose &#8220;UNIX&#8221;, enter the code of the script, and let it run as root. This way you can enable ACLs remotely.</p>
<p>The script writes an ACL entry into each user&#8217;s Desktop folder that allows for writing and deleting.</p>
<p>Be careful and try this in a test environment first.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andre-aulich.de/en/perm/prevent-keeping-file-permissions-if-copying-files-from-read-only-archives-to-your-desktop/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

