Вам нужно экранировать одинарные кавычки в строке.
\'
Таким образом, эта строка должна это исправить:
echo exec('rsync --info=progress2,stats source destion | stdbuf -oL awk \'BEGIN { RS="\r" } /%/ { print $2 }\' > /temp/progress.txt');
Вы говорите, что не получаете вывод, а файл делаетне копировать, попробуйте shell_exec()
$output = shell_exec('rsync --info=progress2,stats source destion | stdbuf -oL awk \'BEGIN { RS="\r" } /%/ { print $2 }\' > /temp/progress.txt');
echo $output;
Теперь, когда я помню, используйте escapeshellarg()
$command = escapeshellarg('rsync --info=progress2,stats source destion | stdbuf -oL awk \'BEGIN { RS="\r" } /%/ { print $2 }\' > /temp/progress.txt');
echo exec($command);