Во-первых, я должен отметить, что я довольно новичок в написании сценариев, но я достаточно хорошо разбираюсь в Ubuntu, так что я не против запачкать руки ...
У меня есть небольшой скрипт, который выполняет простой просмотр каталога и, когда он находит новый файл в каталоге, копирует этот файл в другой каталог. Сценарий, который я использую, выглядит следующим образом:
#!/bin/sh # sudo rsync -av --omit-dir-times --delete --progress /home/sunmorgus/tempx/Complete/ /media/complete/ while [ 1 ] do echo 'Watching directory: '$WATCHED_DIR 'for new files' while file=$(inotifywait -q -e create "$WATCHED_DIR" --format "%f") do echo 'New file to upload to moonback' $file notify-send -i "gtk-go-up" "Complete Folder Monitor" "Uploading file $file" #rsync goes here sudo rsync -av --omit-dir-times --delete --progress /home/sunmorgus/tempx/Complete/ /media/complete/ notify-send -i "gtk-home" "Complete Folder Monitor" "File uploaded." done done
Это модификация скрипта, которую я нашел здесь: http://www.webupd8.org/2010/11/script-to-watch-folder-and-upload-new.html
У меня есть несколько вопросов по поводу сценария. Прежде всего ... это лучший способ сделать то, что я пытаюсь сделать? Как я уже сказал, все работает отлично, но я всегда открыт для новых идей. Примечание: каталог назначения является общим ресурсом SMB на компьютере с Windows 7.
Во-вторых ... как лучше всего запустить этот скрипт при запуске? Прямо сейчас я вошел в экран "Startup Applications" и добавил новую запись, которая запускает эту строку «gnome-terminal -e /script.sh», которая работает, но не кажется идеальной. Я попытался добавить скрипт в папку init.d и запустить update-rc.d, а также добавить скрипт в /etc/rc.local, но ни один из них не сработал (я не получил никаких ошибок, но скрипт не запускался после перезагружать).
Наконец ... есть ли способ изменить этот сценарий, чтобы он также удалялся из места назначения при удалении из источника? Сценарий запускается только тогда, когда файлы добавляются, но не удаляются, и хотя часть rsync будет удаляться из места назначения при удалении из источника, он не будет делать это до тех пор, пока не будет добавлен новый файл. (надеюсь, что этот пункт имеет смысл).