Вероятно, вы не включили аутентификацию в Exim (она отключена по умолчанию ), но вы требуете ее в phpmailer.
Удалите требования для TLS и аутентификации из phpmailer.
Разделение задачи на куски с использованием вашего ввода
drwxrwxr-x 2 per per 4096 nov 3 12:46 launch01
-rw-rw-r-- 1 per per 0 nov 3 12:47 camera112.log
-rw-rw-r-- 1 per per 0 nov 3 12:47 motors121.log
-rw-rw-r-- 1 per per 0 nov 3 12:47 lidar111.log
drwxrwxr-x 2 per per 4096 nov 3 12:49 launch02
-rw-rw-r-- 1 per per 0 nov 3 12:49 motors122.log
-rw-rw-r-- 1 per per 0 nov 3 12:49 lidar211.log
-rw-rw-r-- 1 per per 0 nov 3 12:49 camera113.log
Используйте любой из этих:
ls -lrt | tr -s ' ' | cut -d' ' -f9
ls -lrt | awk '{print $9}'
дает:
launch01
camera112.log
motors121.log
lidar111.log
launch02
motors122.log
lidar211.log
camera113.log
Изменение этого ответа на Разделить один файл на несколько файлов на основе разделителя , создать файл с именем awk_pattern
, содержащий следующее:
BEGIN{ fn = "part1.txt"; n = 1 }
{
if (substr($0,1,6) == "launch") {
close (fn)
n++
fn = "part" n ".txt"
}
print > fn
}
, а затем работает
ls -lrt | awk '{print $9}' | awk -f awk_pattern
дает требуемый результат:
part1.txt
launch01
, а затем
part2.txt
launch01
camera112.log
motors121.log
lidar111.log
part3.txt
launch02
motors122.log
lidar211.log
camera113.log
Хотя первый файл(part1.txt
)следует отбросить, так как он содержит только одну строку...
rm part1.txt
tar -c -v -z -T part2.txt -f part2.tgz
for part_file in $(ls part*)
do
tar_file = ${part_file%.*}
# tar_file = basename ${part_file}.txt
tar -c -v -z -T ${part_file} -f ${tar_file}.tgz
done
Это должно дать
part1.tgz
part2.tgz
part3.tgz
Опять же, part1.tgz
следует отбросить:
rm part1.tgz
#!/bin/bash
ls -lrt | awk '{print $9}' | awk -f awk_pattern
for part_file in $(ls part*)
do
tar_file = ${part_file%.*}
tar -c -v -z -T ${part_file} -f ${tar_file}.tgz
done
rm part1.txt
rm part1.tgz
Всего один скрипт (, включающий шаблон awk)
#!/bin/bash
ls -lrt | awk '{print $9}' | awk 'BEGIN{ fn = "part1.txt"; n = 1 }
{
if (substr($0,1,6) == "launch") {
close (fn)
n++
fn = "part" n ".txt"
}
print > fn
}'
for part_file in $(ls part*)
do
tar_file = ${part_file%.*}
tar -c -v -z -T ${part_file} -f ${tar_file}.tgz
done
rm part1.txt
rm part1.tgz
Это (надеюсь, что)должно работать, хотя я протестировал только первые два шага, то есть до части tar, так как у меня нет файлов для архивирования.
Пост-обработка -:Удаление файлов part*.txt
(rm part*.txt
)
Пост--обработка:Удаление файлов журналов после архивирования(rm *.log
)
Пост--обработка:Удаление каталогов после архивации(rm -R -- */
)
Предотвращение создания awk бесполезного part1.txt
файла
Сохраните файлы tar в другом месте(... -f ${tar_path}/${tar_file}.tgz
)
Не используйте промежуточные part*.txt
файлы.