Private and shared download folders perform a one-way sync from S3 to the local Linux file system.
The problem is that this sync does not clean up empty folders. The AWS SDK by default does not delete empty folders when it performs sync operations. This can lead to a clutter of empty folders which makes for a poor user experience.
One workaround is to run a command that deletes all empty folders and subfolders:
sudo su cd /home/robtest/home/robtest/downloads/ find . -type d -empty -delete
You can turn this into a script. Create a file called
/root/cleanup-folders.sh, and add the following contents:
#!/bin/bash find $1 -type d -empty -delete
Don't forget to make this script executable:
chmod +x /root/cleanup-folders.sh
This is how you use the script:
The next step is to schedule this script:
sudo su crontab -e
In the crontab, you should already see an existing entry for
*/5 * * * * /usr/local/bin/s3sync > /dev/null 2>&1
Append an additional entry for your folder cleanup script:
*/5 * * * * /usr/local/bin/s3sync > /dev/null 2>&1 * * * * * /root/cleanup-folders.sh /home/robtest/home/robtest/downloads/ > /dev/null 2>&1
This runs the folder cleanup script every minute, and discards any command line output or errors.
Note: Editing crontab uses
vi. Here are a few
vi commands for reference:
$: Go to the end of the current line
i: Switch to insert mode
escape: Switch to command mode
:wq: In command mode, this