Rotate MySQL log files
FLUSH LOGS gracefully does most of what you want.  It stops writing to a log, renames the file and starts a new one.  After that, you can deal with copying/moving/archiving/etc the files.

FLUSH LOGS can be run at any time without damaging anything or losing any log entries.

Caveat:  There are many different log files; FLUSH may not work the same way on each, especially in older versions of MySQL.

For those three logs, in most systems, the general log is the biggest, followed by slow, then error.  FLUSH also rotates the "binlog", but, again, that is "harmless".