Handbrake and DVD::RIP will both let you queue things but it's quite a tedious process. You have to manually input the episode number, amongst other tedious things. It wasn't for me.
So when I wanted to rip my Family Guy DVDs, I wrote a simple script that I could reuse in the future:
#!/bin/bash
series=$1
disk=$2
count=$3
offset=0
name="Family Guy"
scratch="~/Desktop/"
destination="/media/ned/tv/$name"
#mkdir $scratch
for c in $(seq 1 1 $count)
do
ep=`printf "%02.f" $(( ($disk-1)*$count+$c ))`
fn="$scratch/$name ${series}x$ep.mp4"
echo "Ripping $name ${series}x${ep} to fn"
/home/oli/hb/HandBrakeCLI -S 200 -Z Television -a 1 -i /dev/sr0 -o "$fn" -t $(($c + $offset))
done
#echo "moving..."
#mv $scratch/* "$destination"
echo "done."
eject
sleep 2
eject
This is really very raw and there's plenty of scope for improving it. The format for calling it is:
script_name <series> <disk> <number-of-episodes-per-disk>