Вам нужен tail --follow=name /var/log/syslog
Причина в том, что по умолчанию - предположительно из соображений производительности - tail открывает указанный файл и затем просматривает дескриптор файла, полученный из этого вызова open(2) для внесения изменений.
Это работает нормально до тех пор, пока файл изменяется - добавляется или даже переписывается (сначала обрезая его), но перестает работать, если файл заменяется - то есть удаляется и создается с тем же именем, и это обычно делает logrotate .
Режим "name" --follow заставляет tail использовать более дорогой системный вызов stat(2) который фактически "разрешает" имя файла каждый раз через слой файловой системы, и если tail замечает, что файл изменил свой так называемый "inode", tail повторно открывает файл.
Выход из man tail:
  -f, --follow[={name|descriptor}]
  
  выводить добавленные данные по мере роста файла; аргумент отсутствия опции означает «дескриптор»
Вы также можете посмотреть опцию командной строки -F , которая определяется как
  -F же, как --follow=name --retry