SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/bin/bash | |
| 2 | #modified by John Louis C. Garcia on Feb. 12, 2014 | |
| 3 | #original source by Pieter at http://www.rapidcommerce.eu/blog/2012/08/remove-unused-magento-product-images/#comment-14649 | |
| 4 | #works with remote database hostname | |
| 5 | #works also if you have cache(memcached/apc) enabled on local.xml | |
| 6 | ||
| 7 | #instruction: change the MAGENTO_PATH. | |
| 8 | ||
| 9 | MAGENTO_PATH="/var/www/path/to/vhost/httpdocs/path/to/magento" | |
| 10 | LOG=${MAGENTO_PATH}/var/log/imagecleanup.log
| |
| 11 | DB_USER=$(sed -n 's|<username><\!\[CDATA\[\(.*\)\]\]></username>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ')
| |
| 12 | DB_PASS=$(sed -n 's|<password><\!\[CDATA\[\(.*\)\]\]></password>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ')
| |
| 13 | DB_NAME=$(sed -n 's|<dbname><\!\[CDATA\[\(.*\)\]\]></dbname>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ')
| |
| 14 | DB_PREFIX=$(sed -n 's|<table_prefix><\!\[CDATA\[\(.*\)\]\]></table_prefix>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ')
| |
| 15 | - | DB_REMOTEHOST=$(sed -n 's|<host><\!\[CDATA\[\(.*\)\]\]></host>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ')
|
| 15 | + | DB_REMOTEHOST=$(sed -n 's|<host><\!\[CDATA\[\(.*\)\]\]></host>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ' | awk 'END{print}')
|
| 16 | function search_db() {
| |
| 17 | COUNT=$(mysql -u ${DB_USER} -p${DB_PASS} -h ${DB_REMOTEHOST} ${DB_NAME} --execute="SELECT count(*) FROM ${DB_PREFIX}catalog_product_entity_media_gallery WHERE $
| |
| 18 | echo $(echo ${COUNT} | cut -d" " -f2)
| |
| 19 | } | |
| 20 | ||
| 21 | echo "Starting image cleanup " $(date) | tee -a ${LOG}
| |
| 22 | IMG_PATH=${MAGENTO_PATH}/media/catalog/product/
| |
| 23 | for IMG in $(find ${IMG_PATH} -name '*.jpg' ! -path '*cache*' ! -name 'google*'); do
| |
| 24 | REL_IMG=/${IMG:${#IMG_PATH}}
| |
| 25 | if [ $(search_db ${REL_IMG/'${MAGENTO_PATH}/media/catalog/product'/}) != 1 ]; then
| |
| 26 | IMG=${IMG##*/}
| |
| 27 | for CACHE_IMG in $(find ${MAGENTO_PATH}/media/catalog/product/ -name "${IMG}"); do
| |
| 28 | echo "Found unused image ${CACHE_IMG}"
| |
| 29 | if [ "$1" ] && [ $1 == 'cleanup' ]; then | |
| 30 | echo "Removing unused image ${CACHE_IMG}" | tee -a ${LOG}
| |
| 31 | rm "${CACHE_IMG}"
| |
| 32 | fi | |
| 33 | done | |
| 34 | else | |
| 35 | echo "Not touching " ${IMG}
| |
| 36 | fi | |
| 37 | done | |
| 38 | echo "Finished image cleanup " $(date) | tee -a ${LOG}
| |
| 39 | ||
| 40 | ||
| 41 | exit 0; |