How to lose a specific amount of health over time

So when my character gets hit by the enemies fire breath, I want to create the feel of the character being set on fire. So while the character is on fire I want him to lose a specific amount of health over a specific amount of time.

For example; lets say he is on fire for 3 seconds and I want to make him lose 30 health for being on fire, how would I evenly distribute losing 30 health for 3 seconds? I dont want the 30 damage to be applied instantly to the health, I want it to slowly tick away at the players health so that at the 3 second mark 30 damage has been dealt.

Thanks.

public float health = 1000; // health of player
public float dmgTick = 100; // Damage each tick
public float timeXTick = 1; // Time in seconds each tick of damage
public int totalTicks = 3; // how many seconds ( ticks ) 100 damage each tick

    IEnumerator DmgXSecond()
    {
        int ticks = 0;
        int totalTicksTemp = totalTicks;

        while (ticks < totalTicksTemp)
        {
            ticks++;
            health -= dmgTick;  // Player recive 100 damage
            yield return new WaitForSecondsRealtime(timeXTick);  // wait 1 second
        }

    }

    private void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            StartCoroutine("DmgXSecond"); // If Hit Space, 3 ticks of 100 dmg each second.
        }
    }

private float timeLeft;
private bool losingHealth;
void Start(){
timeLeft=30f;
losingHealth = false;
}

void Update()
     {
         if (losingHealth==true){
             timeLeft -= Time.deltaTime;
             CharacterHealth -= Time.deltaTime;    //to round it use: Mathf.Round (Time:deltaTime* 10f) / 10f;
         if ( timeLeft < 0 )
         {
             losingHealth=false;
         }
     }