First, the argument -mtimedoes not receive files that are "older" than a certain amount. Rather, it checks the last time the file was modified. File creation date is not saved on most file systems. Often the last modified time is enough, but it does not match the age of the file.
If you just want to create one tar file for each archive, use -exec instead of passing data to xargs:
find /tmp/log/ -mtime +180 -type f -exec sh -c \
'tar -czvPf /tmp/older_log_$(basename $0)_$(date +%F).tar.gz $0' {} \;
source
share