Даже если мне нравится чистый ответ udev, есть также инструмент под названием usbmount, который вы можете установить
apt-get install usbmount
который автоматически монтирует диски и довольно просто настраивается через файл конфигурации.
Я предпочитаю вообще не использовать автомонтирование, но некоторые клиенты просят об этом.
У вас есть четыре вещи, которые вы пытаетесь выполнить :1 )вставка строки в начало файла, 2 )чтение определенной строки файла, 3 )условное ветвление, если это конкретной строки не существует, и 4 )удаление определенной строки файла.
Вы можете использовать утилиту редактора потоков sed
, чтобы сделать все это. Я предполагаю, что GNU sed
в своем ответе, но точный синтаксис может немного отличаться от других версий sed
.
Чтобы вставить строку в начало файла:
sed -i "1i\${date}" ${oldlog}
Опция -i
указывает sed
работать с файлом на месте. 1
указывает sed
работать только с первой строкой. i\
говорит sed
вставить перед строкой.
Для извлечения 21-й строки:
del="$(sed -n 21p "${oldlog}")"
-n
переводит sed
только в тихий режим, поэтому единственным выводом является то, что явно напечатано. 21
— номер строки, а p
— команда печати.
Чтобы определить, есть ли 21-я строка:
sed -n 21q1 ${oldlog}
Снова -n
переводит sed в тихий режим, 21
выбирает 21-ю строку, q
указывает sed выйти, а 1
является кодом выхода.
Удаление 21-й строки:
sed -i 21d ${oldlog}
Опять же, -i
для работы с файлом на месте, 21
выбирает строку 21 и d
удаляет строку.
Собираем все воедино:
sed -i "1i\${date}" ${oldlog}
del="$(sed -n 21p "${oldlog}")"
sed -n 21q1 ${oldlog} || { echo "Deleting ${dest}/old/${del}" && rclone purge "${dest}/old/${del}" && sed -i 21d ${oldlog} }