How to restore SQL Server database to a specific day?
&gt;I am requested to restore the db to a day one month ago. how can I do that?

you can't as you only have 7 days of backups due to disk space shortage. If you are/were moving the backups away and storing them for X amount of days then you would be able to go back that X amount of days to recover your data.

also, your database recovery model plays an important role in whether you can do a point-in-time restore or not - provided you are taking transaction log backups in full or bulk-logged recovery mode.

&gt;Also can I shrink or truncate log file much smaller?

yes you can do it, but with some caution.

shrinking database is not a good idea unless you are sure that it won't grow to that point again.

refer to I Need to Shrink My Database - I just freed a lot of space for more details as it is covered is a nice and precise way.