Bruce M. was called in about a problem with a shell script that uploaded content to his company's CMS system.  Of course, the firewall between the LAN and their DMZ would terminate connections during the upload, but there are plenty of ways to resolve it.  Or, as one of his colleagues reasoned, one way to resolve it, done hundreds of times.

The shell script that handled this process was one step ahead of the firewall.  Below are the unedited, full contents of "retry_upload_site:"

./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site
./upload_site

Fortunately, rsync only had to compare about 15,000 files every time upload_site ran.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!