zanotuj czas emerge
checktime.sh
Czasem chciało by się wiedzieć ile tak na prawdę czasu zajmuje skompilowanie ze źródła różnych programów. Prezentowany poniżej skrypcik ten daje taką możliwość.
Uwaga !
Należy jednak zauważyć, że ów skrypcik ma jedną(przynajmniej) wadę – nie jest on w stanie zapisać czasów kompilacji poszczególnych programów kompilowanych przez emerge, a jedynie czas działania całego emerge-a. Jeżeli więc program ma wiele “zależności” które będą kompilować się przed nim, polecam emerge-nąć je wcześniej, tak by nie zakłócały pomiarów dotyczących programu docelowego.
Obsługa
Są dwie opcje:
- uruchamiamy emerge jak zwykle, tylko całą komendę poprzedzamy nazwą skryptu
# checktime.sh emerge fasolka - tworzymy alias który pomoże nam zapisywać czas każdej kompilacji
alias emerge='checktime.sh emerge'
… Alias ten możemy później dodać do .bashrc by działał również przy przyszłych logowaniach
checktime.sh
#!/bin/bash
log_file="/var/log/compilation_times.txt";
if [ "$1" = "emerge" ] || [ "$1" = "emerge_with_indexing_for_cfg-update" ]
then
if [ "$2" = '-pv' ]
then
echo -ne "\n\t--pretend option used. Not counting time !!\n";
$*;
exit $?;
fi
echo -ne "Should I note compilation time? [Y/N] ";
read -n1 one;
while [ $one != 'Y' ] && [ $one != 'T' ] && [ $one != 'N' ] && [ $one != 'y' ] && [ $one != 't' ] && [ $one != 'n' ]
do
echo -ne "\n...Only N & Y are allowed, what it will be then? [Y/N] "
read -n1 one;
done
echo -ne "\n\n";
if [ $one == 'N' ] || [ $one == 'n' ]
then
$*;
exit $?;
fi
fi
job="$*";
start=`date`;
$*;
rret=$?;
stop=`date`;
echo ;
echo "Job: $job";
echo "Started at: $start";
echo "Ended at: $stop";
if (( $rret ))
then
echo -ne "\n\n\tWarning !! The JOB has retured an ERROR !! ($rret)\n\n";
echo "Job: $job !! FAILED !!" >> $log_file
else
echo "Job: $job" >> $log_file
fi
echo "Started at: $start" >> $log_file
echo "Ended at: $stop" >> $log_file
echo >> $log_file
exit $rret;
#EOF
No comments yet
Jump to comment form | rss komentarzy [?] | trackback uri [?]