You cannot truncate the log of a mirrored database. You should not be truncating your log anyway. It breaks the log chain and means that you will not be able to do a point-in-time restore of the db to any point after the log truncation, until you take another full/diff backup.
a) Transaction log backup.
b) TSQL Command backup log with no_log
c) Shrink Database utility.
Why truncate the log at the 2nd step? You've just backed up the log which will discard all inactive transactions (after backing them up). The only thing that will achieve is to break the log chain.
Why do you want to shrink your database every 3 days. It results in sever index fragmentation and the DB is just going to grow again as soon as data is added. The repeated shrink/grow can result in fragmentation at a file-system level.
Have a quick read through these two blog posts please
http://sqlinthewild.co.za/index.php/2007/09/08/shrinking-databases/
http://sqlinthewild.co.za/index.php/2008/07/23/recovery-model-and-transaction-logs/
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability