El estándar ps
es suficiente.
while true; do ps o pcpu,rsz -p $pid | tail -n1 >>usage.log; sleep $interval; done
resultado:
0.0 3352
0.3 31640
0.4 36924
0.5 36052
...
El primer campo es el uso de la CPU en %, el segundo es el uso de la memoria física en kbytes.
Si te preocupa la sincronización precisa y quieres la CPU en porcentaje:
watch --precise -n 1 'top -b -n 1 -p [PID] | tail -n 1 | awk "{print \$9}" >> [PID].log'