Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I am downloading Mountain Lion, I know I can monitor download progress through the Mac App Store purchases screen but I want to know if I can monitor progress through Terminal.app using a shell command.

share|improve this question
2  
I may have misunderstood the question but is it not much easier to just click on the Purchases "tab" in App Store and watch the progress bar? –  user25765 Jul 25 '12 at 20:44
    
I know you can do it in the Purchases tab. I wanted to know if it could be done in the Terminal –  conorgriffin Jul 26 '12 at 13:21

3 Answers 3

Sure - the storeagent uses a folder deep within /private/var/folders to hold the download progress.

On my Mac it's downloading to this folder below - yours may change, but you should be able to search for the com.apple.appstore using mdfind and use du or ls to see the file size grow.

/private/var/folders/tv/xyw2rpln7hq4gw2m0prg_src0000gn/C/com.apple.appstore/497799835

The App Store has a nicer wrapper on the progress with a time estimate, but with bc and other tools, you could do the same in a short shell script exercise.


If you can't locate your folder, this find command might be of use to narrow down your search....

sudo find /var/folders -type d -name com.apple.appstore -print
share|improve this answer
1  
Could you expand your answer to explain how to find the right directory? –  conorgriffin Jul 25 '12 at 18:46
    
Sure - I just did a brute force search based on last modified time and ls - but I'll edit in a find command that worked for me... –  bmike Jul 25 '12 at 18:50
5  
du -h /private/var/folders/*/*/C/com.apple.appstore/*/*.pkg would print the size of the download in a human-readable format. The total size of the version I'm currently downloading is shown as 4.3 GB in App Store. –  Lri Jul 25 '12 at 21:44
up vote 1 down vote accepted

I decided that the best way to identify the file being downloaded was to write a small script that fetched the files held open by the App Store program storeagen.

#!/bin/bash
appstore_pid=$(ps -ef|grep storeagen|grep -v grep|awk '{print $2}')
lsof -p $appstore_pid|grep private|awk '{print $7 "\t" $9}'

I set appstore_pid variable to the PID of storeagen by extracting it from the ps command using grep and awk

Then I use lsof to list open files by the PID of storeagen and I print out the size of the files and the files path. If you do this several times in succession you can see the file(s) that's growing and make a good guess by its size that it is the OS download.

share|improve this answer
    
Nice use of lsof ;-) I piped to a second grep for pkg since I've seen the lsof return four or more items in /private/var/... –  bmike Jul 25 '12 at 21:06

I just used the activity monitor and watched how much data transfer was happening... And ensure no other traffic at the time of download. Its not perfect, but gives you a general idea something is happening.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.