Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

I need guidance in tweaking my Nightly Cron Backup script to properly remove old files.

Posted on 2009-05-14
3
365 Views
Last Modified: 2013-12-16
I have two IP security cameras that each take a snapshot every 3 seconds and FTP it to my linux server. This generates approximately 85,000 images per day. I've written a very rough backup script to perform the following functions at the end of each day:

1) Delete the old DAY.TAR.GZ (i.e. Monday would delete last week's Monday.tar.gz)
2) Tar all of the current day's image files into DAY.TAR.GZ
3) Delete all of the current day's image files.

This repeats every day, so I always have 7 days worth of surveillance stills to go back and review if needed. Monday.tar.gz, Tuesday.tar.gz, Wednesday.tar.gz, etc etc.

The script works great except for the deleting of the current day's photos. Originally I was running an rm -f /var/www/photosvcs/*.jpg that was supposed to delete all of the JPG image files from the directory, but the argument list was too long so it would fail. Eventually I ran out of disk space as nothing was being deleted but everything was being backed up each night. Not a good situation.

I found a workaround to get past the 'Too Many Arguments' error for rm, which was to do a find and print the results to delete everything individually. I'm posting a snippet of my cron to show what I am doing currently. It's still not working, though, which is why I'm here. I'm actually not getting any errors from this, the files just aren't being deleted.

I know this script is bulky but I'm by no means a script coding kind of guy. Did what I thought logically should work, so now I'm asking for help. Any thoughts or suggestions would be greatly appreciated!

Have a great day.
# Remove previous week's backup (MONDAY 11:50pm)
50 23 * * 1 /bin/rm -f /var/www/monday.tar.gz
 
# Backup current day's photos (MONDAY 11:55pm)
55 23 * * 1 /bin/tar -zcpf /var/www/monday.tar.gz /var/www/photos
 
# Delete current day's photo files (MONDAY 11:59pm)
59 23 * * 1 cd /var/www/photos | find . -name '*jpg' | xargs rm -f

Open in new window

0
Comment
Question by:goodie069
  • 2
3 Comments
 
LVL 14

Accepted Solution

by:
Deepak Kosaraju earned 500 total points
ID: 24384909
Since u are using | some crons dosen't support | so either u can copy the entire command to a file and name it as deletecurrent.sh and call it from cron (or)
replace the above delete command with the following
find /var/www/photos/* -name '*.jpg' - exec rm -rf {} \;
0
 
LVL 14

Expert Comment

by:Deepak Kosaraju
ID: 24384918
let me show the command more clear
find /var/www/photos/* -name '*.jpg' -exec rm -rf {} \;

Open in new window

0
 

Author Closing Comment

by:goodie069
ID: 31581436
Perfect! Worked like a charm. Thanks!
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Setting up Secure Ubuntu server on VMware 1.      Insert the Ubuntu Server distribution CD or attach the ISO of the CD which is in the “Datastore”. Note that it is important to install the x64 edition on servers, not the X86 editions. 2.      Power on th…
Google Drive is extremely cheap offsite storage, and it's even possible to get extra storage for free for two years.  You can use the free account 15GB, and if you have an Android device..when you install Google Drive for the first time it will give…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question