The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
bash-скриптинг, !*! Hogward, 30-Сен-16, 14:23  [смотреть все]
Входная информация:
Есть каталог (пример) /home/usr/var/ в котором лежит 300 файлов. Периодически возникает необходимость обновлять эти файлы, создав бэкапы старых. Хочу автоматизировать сей нудный процесс до нажатия одной кнопки. Таким образом у меня есть список файлов list.txt в котором указаны интересующие меня файлы (количество любое, файл заполняется через ls). На основании этого файла хочу выбрать существующие файлы из /home/usr/var/, скопировать их в /home/usr/var_old/, после чего подменить на новые. Перерыл кучу информации, нашел несколько работающих вариантов в случаях, когда есть полный путь до файлов, но так и не понял, как написать запрос поиска файлов на основании их имен в текстовом документе. Поиск осуществляется именно через текстовый документ, т.к. он формируется на удаленном сервере, после чего доставляется на необходимый.
PS из плюсов - все файлы имеют вид "document"; "item" и пр. Без пробелов, спецсимволов и расширений.

Копирование файлов планирую осуществлять вот таким образом:
cat /home/usr/var/to_backup.txt | xargs -IFILE cp FILE  /home/usr/var_old/
где to_backup.txt - файл, созданный на основе list.txt, но с полными путями до файлов.

Почти уверен, что проблему можно решить обычным find-ом, но не хватает скила правильно это сделать.

  • bash-скриптинг, !*! Виктор, 23:27 , 30-Сен-16 (1) +1
    >[оверквотинг удален]
    > осуществляется именно через текстовый документ, т.к. он формируется на удаленном сервере,
    > после чего доставляется на необходимый.
    > PS из плюсов - все файлы имеют вид "document"; "item" и пр.
    > Без пробелов, спецсимволов и расширений.
    > Копирование файлов планирую осуществлять вот таким образом:
    > cat /home/usr/var/to_backup.txt | xargs -IFILE cp FILE  /home/usr/var_old/
    > где to_backup.txt - файл, созданный на основе list.txt, но с полными путями
    > до файлов.
    > Почти уверен, что проблему можно решить обычным find-ом, но не хватает скила
    > правильно это сделать.

    while read f; do
      echo $f
    done <list.txt

    • bash-скриптинг, !*! Hogward, 11:35 , 03-Окт-16 (3)
      >[оверквотинг удален]
      >> Без пробелов, спецсимволов и расширений.
      >> Копирование файлов планирую осуществлять вот таким образом:
      >> cat /home/usr/var/to_backup.txt | xargs -IFILE cp FILE  /home/usr/var_old/
      >> где to_backup.txt - файл, созданный на основе list.txt, но с полными путями
      >> до файлов.
      >> Почти уверен, что проблему можно решить обычным find-ом, но не хватает скила
      >> правильно это сделать.
      > while read f; do
      >   echo $f
      > done <list.txt

      Спасибо, разобрался с циклом и все заработало.

  • bash-скриптинг, !*! Pahanivo, 11:03 , 03-Окт-16 (2)
    причем тут find, когда, как ты сам пишешь, тебе известны их имена и пути ... остается только проверить их существование ...
    попытайся сформулировать задачу хотя бы для себя - глядишь и сам разберешься.
    • bash-скриптинг, !*! Hogward, 11:39 , 03-Окт-16 (4)
      > причем тут find, когда, как ты сам пишешь, тебе известны их имена
      > и пути ... остается только проверить их существование ...
      > попытайся сформулировать задачу хотя бы для себя - глядишь и сам разберешься.

      Это часть более сложного сценария. Путь динамически меняется от сервера к серверу. Предложенный выше вариант позволил решить задачу, отказавшись от создания еще одного текстового файла.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру