С zsh
:
vim -- "${(f)$(<filelist)}"
С любой подобной Границе оболочкой (включая zsh
):
(IFS='
'; set -f; exec vim -- `cat filelist`)
С GNU xargs
:
xargs -d '\n' --arg-file=filelist vim --
Я бы порекомендовал другую стратегию. и используйте что-нибудь вроде rsnapshot, которая предназначена для чего-то вроде этого.
Итак, чтобы сохранить еженедельное и ежемесячное резервное копирование, вам нужно изменить имя файла [118817]до [118818] выполнения лог-файла. Самый простой способ - создать отдельное задание cron, которое будет копировать [118819]db.sql[118820] на [118821]db.sql.weekly[118822] раз в неделю и копировать его на [118823]db.sql.monthly[118824] раз в месяц. После этого вы можете изменить конфигурацию логротата на чтение
Я только что наткнулся на эту проблему и случайно прочитал эту ветку.
Во время своих исследований я нашел другой способ решения проблемы дублирования пути в файле конфигурации logrotate:
Создание символических ссылок менее чем болезненно и отлично обманывает синтаксический анализатор logrotate, поскольку вы представляете ему разные пути для доступа к одним и тем же файлам.
В файловой системе:
$ls -l
mysql.monthly -> mysql/
mysql.weekly -> mysql/
mysql
В файле конфигурации logrotate:
/path/mysql/*.sql.gz {
daily
rotate 8
copy
compress
ifempty
missingok
olddir /path/mysql/archives
sharedscripts
nocreate
}
/path/mysql.weekly/*.sql.gz {
weekly
copy
rotate 4
compress
ifempty
missingok
olddir /path/mysql/archives/1-Semaine
nocreate
}
/path/mysql.monthly/*.sql.gz {
monthly
copy
rotate 12
compress
ifempty
missingok
olddir /path/mysql/archives/2-Mois
}