|
Bogdan Timofte
authored
3 months ago
|
1
|
# AutoNAS v3.0 - Sistem de Montare Automată cu Unified Interface
|
|
|
2
|
|
|
|
3
|
AutoNAS este un sistem inteligent pentru montarea automată a diskurilor externe cu configurarea IP-urilor, exporturilor NFS și **arhitectura revoluționară Background Import** pentru import scalabil de camere digitale. Sistemul detectează automat conectarea diskurilor USB/SATA externe, le montează, configurează IP-uri pe interfețe de rețea și exportă conținutul prin NFS.
|
|
|
4
|
|
|
|
5
|
## 🎉 **Nouă în v3.0: Clean User Interface**
|
|
|
6
|
- **🚀 Scriptul Unificat** - Un singur script `autonas` pentru toate operațiunile
|
|
|
7
|
- **⚡ Interfață Curată** - Doar comanda `autonas` vizibilă în autocomplete
|
|
|
8
|
- **🔄 Background Import** - Import-uri în background fără timeout constraints
|
|
|
9
|
- **📊 Cod Optimizat** - 47% reducere cod prin eliminarea duplicărilor
|
|
Bogdan Timofte
authored
2 weeks ago
|
10
|
- **🗂️ Scripturi Organizate** - Toate scripturile interne ascunse în `/usr/local/lib/xdev/autonas/`
|
|
Bogdan Timofte
authored
3 months ago
|
11
|
|
|
|
12
|
## 🌟 **Interfața Curată AutoNAS**
|
|
|
13
|
|
|
|
14
|
### Comanda Principală (Singura Vizibilă)
|
|
|
15
|
```bash
|
|
|
16
|
autonas <command> [options]
|
|
|
17
|
```
|
|
|
18
|
*Doar comanda `autonas` apare în autocomplete - toate scripturile interne sunt ascunse*
|
|
|
19
|
|
|
|
20
|
### Operațiuni Disponibile
|
|
|
21
|
```bash
|
|
|
22
|
# Operațiuni Diskuri
|
|
Bogdan Timofte
authored
3 months ago
|
23
|
autonas attach <uuid|name|mount_point> # Montează disk automat
|
|
|
24
|
autonas detach <uuid|name|mount_point> # Demontează disk
|
|
Bogdan Timofte
authored
3 months ago
|
25
|
autonas list # Listează diskurile configurate
|
|
|
26
|
|
|
|
27
|
# Management Configurații
|
|
|
28
|
autonas add [uuid] # Adaugă configurație nouă
|
|
|
29
|
autonas show # Afișează toate device-urile detectate
|
|
|
30
|
autonas status # Status sistem complet
|
|
|
31
|
|
|
|
32
|
# Utilități
|
|
|
33
|
autonas --help # Ajutor complet
|
|
|
34
|
```
|
|
|
35
|
|
|
|
36
|
### Avantaje Interfață Curată
|
|
|
37
|
- **Un singur command vizibil** - doar `autonas` în autocomplete
|
|
|
38
|
- **Interfață consistentă** pentru toate operațiunile
|
|
|
39
|
- **Cod optimizat** cu 47% reducere prin eliminarea duplicărilor
|
|
Bogdan Timofte
authored
2 weeks ago
|
40
|
- **Scripturi organizate** - toate utilitarele interne în `/usr/local/lib/xdev/autonas/`
|
|
Bogdan Timofte
authored
3 months ago
|
41
|
- **Logging unificat** cu tag-uri comune
|
|
|
42
|
|
|
|
43
|
## 🚀 Instalare în Cluster
|
|
|
44
|
|
|
|
45
|
AutoNAS este destinat exclusiv pentru instalare pe cluster de servere prin sistemul de deploy remote:
|
|
|
46
|
|
|
|
47
|
```bash
|
|
|
48
|
# Clonează repository-ul
|
|
|
49
|
git clone <repository-url> autoNAS
|
|
|
50
|
cd autoNAS
|
|
|
51
|
```
|
|
|
52
|
|
|
|
53
|
## 🌐 Deploy Remote
|
|
|
54
|
|
|
|
55
|
AutoNAS folosește exclusiv deploy remote pentru instalarea și managementul pe nodurile cluster-ului:
|
|
|
56
|
|
|
|
57
|
```bash
|
|
|
58
|
# Instalare completă pe toate serverele (192.168.2.91-93)
|
|
|
59
|
./deploy.sh install
|
|
|
60
|
|
|
|
61
|
# Dezinstalare completă de pe toate serverele
|
|
|
62
|
./deploy.sh uninstall
|
|
|
63
|
|
|
|
64
|
# Instalare doar pe server specific
|
|
|
65
|
./deploy.sh install 192.168.2.91
|
|
|
66
|
|
|
|
67
|
# Management servicii
|
|
|
68
|
./deploy.sh start # Pornește serviciile
|
|
|
69
|
./deploy.sh restart # Restartează serviciile
|
|
|
70
|
./deploy.sh stop # Oprește serviciile
|
|
|
71
|
./deploy.sh status # Verifică statusul
|
|
|
72
|
```
|
|
|
73
|
|
|
|
74
|
### Caracteristici Deploy:
|
|
|
75
|
- ✅ **Instalare exclusiv cluster** - destinat doar pentru noduri multiple
|
|
|
76
|
- ✅ **Verificare host status** - testează disponibilitatea cu ping
|
|
|
77
|
- ✅ **Conectivitate SSH** - validează accesul prin chei SSH
|
|
|
78
|
- ✅ **Transfer eficient** - sincronizare cu rsync
|
|
|
79
|
- ✅ **Error handling** - management robust al erorilor
|
|
|
80
|
- ✅ **Logging colorat** - feedback clar pentru fiecare operație
|
|
|
81
|
|
|
Bogdan Timofte
authored
2 weeks ago
|
82
|
## 📦 Layout standardizat
|
|
|
83
|
|
|
|
84
|
AutoNAS este aliniat la layout-ul comun `xdev`, cu două excepții deliberate:
|
|
|
85
|
- configul cluster-shared rămâne în `/etc/pve/autonas`
|
|
|
86
|
- mount points și datele montate rămân în `/mnt/autonas`
|
|
|
87
|
|
|
|
88
|
Layout instalat pe host:
|
|
|
89
|
- comandă operator: `/usr/local/sbin/autonas`
|
|
|
90
|
- runtime intern: `/usr/local/lib/xdev/autonas`
|
|
|
91
|
- uninstall canonic: `/usr/local/lib/xdev/autonas/uninstall.sh`
|
|
|
92
|
- wrapper uninstall: `/usr/local/sbin/xdev-autonas-uninstall`
|
|
|
93
|
- defaults: `/etc/default/xdev-autonas`
|
|
|
94
|
- docs: `/usr/local/share/doc/xdev/autonas`
|
|
|
95
|
|
|
|
96
|
Observație operațională:
|
|
|
97
|
- `autonas.service` și `autonas-boot-scan.service` rămân intenționat ordonate înainte de `remote-fs.target` și `umount.target`, pentru ca exporturile NFS locale să nu dispară înainte ca mount-urile Proxmox dependente să se demonteze la shutdown
|
|
|
98
|
- pentru mount-urile Proxmox self-hosted, installerul generează și un drop-in `nfs-server.service.d/50-autonas-self-hosted-proxmox.conf` care adaugă ordering explicit față de unitățile `mnt-pve-*.mount` identificate din `storage.cfg`; contextul complet este urmărit în issue-ul de cluster `ISSUE-2026-002`
|
|
|
99
|
|
|
|
100
|
Metoda standard pentru install/uninstall pe un singur nod:
|
|
|
101
|
|
|
|
102
|
```bash
|
|
|
103
|
sudo ./setup.sh --local
|
|
|
104
|
sudo ./setup.sh 192.168.2.91
|
|
|
105
|
sudo ./setup.sh --uninstall 192.168.2.91
|
|
|
106
|
```
|
|
|
107
|
|
|
Bogdan Timofte
authored
3 months ago
|
108
|
### Pregătirea pentru Deploy:
|
|
|
109
|
1. **Configurează cheile SSH** pe serverele țintă
|
|
|
110
|
2. **Testează conectivitatea**: `./deploy.sh status`
|
|
|
111
|
3. **Deploy complet**: `./deploy.sh install`
|
|
|
112
|
|
|
|
113
|
## 📋 Funcționalități Principale
|
|
|
114
|
|
|
|
115
|
### 🔌 Detectare Automată
|
|
|
116
|
- **Detectare prin udev** pentru diskuri USB, SATA externe și USB-to-SATA bridges
|
|
|
117
|
- **Suport pentru multiple tipuri** de device-uri (removable, ATA cu USB properties)
|
|
|
118
|
- **Detectare inteligentă** bazată pe UUID filesystem
|
|
|
119
|
|
|
|
120
|
### 🗂️ Trei Tipuri de Configurare
|
|
|
121
|
|
|
|
122
|
#### 1. **NFS Share Complet** (acces de rețea)
|
|
|
123
|
```bash
|
|
|
124
|
autonas add <uuid> # Selectează [1] - NFS share complet
|
|
|
125
|
```
|
|
|
126
|
- Montare automată + configurare IP + export NFS
|
|
|
127
|
- Acces complet de rețea pentru alte mașini
|
|
|
128
|
- Perfect pentru backup servere și storage partajat
|
|
|
129
|
|
|
|
130
|
#### 2. **Montare Locală Simplă** (doar local)
|
|
|
131
|
```bash
|
|
|
132
|
autonas add <uuid> # Selectează [2] - Montare locală
|
|
|
133
|
```
|
|
|
134
|
- Doar mount point local, fără IP și NFS
|
|
|
135
|
- Ideal pentru storage local rapid
|
|
|
136
|
- Perfect pentru backup-uri și scratch space
|
|
|
137
|
|
|
|
138
|
#### 3. **Import Cameră Automat** (procesare media)
|
|
|
139
|
```bash
|
|
|
140
|
autonas add <uuid> # Selectează [3] - Import cameră
|
|
|
141
|
```
|
|
|
142
|
- Mount → import media files → unmount automat
|
|
|
143
|
- Organizare automată cu EXIF și UTC conversion
|
|
|
144
|
- Background processing fără timeout constraints
|
|
|
145
|
|
|
|
146
|
### 🌐 Configurație NFS Optimizată
|
|
|
147
|
```
|
|
|
148
|
*(rw,all_squash,insecure,async,no_subtree_check,anonuid=0,anongid=0)
|
|
|
149
|
```
|
|
|
150
|
|
|
|
151
|
### 🔄 Management Inteligent
|
|
|
152
|
- **Configurare prin UUID** pentru identificare precisă
|
|
|
153
|
- **Protecția configurațiilor** utilizatorului la reinstalare
|
|
|
154
|
- **Logging detaliat** pentru debugging și monitorizare
|
|
|
155
|
- **Error handling robust** cu mesaje informative
|
|
|
156
|
|
|
|
157
|
## 📊 Comenzi de Management Rapide
|
|
|
158
|
|
|
|
159
|
### Flux de Lucru Tipic
|
|
|
160
|
```bash
|
|
|
161
|
# 1. Detectează UUID-ul diskului conectat
|
|
|
162
|
autonas show
|
|
|
163
|
|
|
|
164
|
# 2. Configurează diskul (interactiv)
|
|
|
165
|
autonas add <uuid>
|
|
|
166
|
|
|
|
167
|
# 3. Verifică statusul
|
|
|
168
|
autonas list
|
|
|
169
|
autonas status
|
|
|
170
|
|
|
|
171
|
# 4. Monitorizează log-urile
|
|
|
172
|
journalctl -t autonas -f
|
|
|
173
|
```
|
|
|
174
|
|
|
|
175
|
### Configurare Rapidă Exemplu
|
|
|
176
|
```bash
|
|
|
177
|
# Conectează diskul și detectează UUID
|
|
|
178
|
$ autonas show
|
|
|
179
|
Available storage devices:
|
|
|
180
|
[1] /dev/sdb1 → UUID: 920fe1b7-4091-4d6a-bab8-2f48d8d704bc (ext4, 1.8TB)
|
|
|
181
|
|
|
|
182
|
# Configurează pentru NFS
|
|
|
183
|
$ sudo autonas add 920fe1b7-4091-4d6a-bab8-2f48d8d704bc
|
|
|
184
|
Input name: backup-disk
|
|
|
185
|
Configuration type: [1] NFS share complet
|
|
|
186
|
Input IP: 192.168.10.25
|
|
|
187
|
Input interface: thunderbridge
|
|
|
188
|
✓ Configuration added and disk mounted!
|
|
|
189
|
|
|
|
190
|
# Verifică rezultatul
|
|
|
191
|
$ autonas list
|
|
|
192
|
Configured disks:
|
|
|
193
|
[1] backup-disk (920fe1b7-4091-4d6a-bab8-2f48d8d704bc) → NFS: 192.168.10.25
|
|
|
194
|
```
|
|
|
195
|
|
|
|
196
|
## 📷 Camera Import Automation
|
|
|
197
|
|
|
|
198
|
AutoNAS v3.0 introduce arhitectura revoluționară **Background Import** pentru import automat scalabil de camere digitale:
|
|
|
199
|
|
|
|
200
|
### 🔄 Background Import Architecture
|
|
|
201
|
- **Service-Based Import** - Separare completă mount/import prin systemd services
|
|
|
202
|
- **Unlimited Duration** - Import-uri fără timeout constraints (testat cu 300+ files)
|
|
|
203
|
- **Auto-Unmount** - Workflow complet automat mount → import → unmount
|
|
|
204
|
- **UTC Conversion** - Conversie perfectă UTC → Local Time pentru EXIF
|
|
|
205
|
|
|
|
206
|
### Configurare Camera Import
|
|
|
207
|
```bash
|
|
|
208
|
# Configurează camera pentru import automat
|
|
|
209
|
autonas add <camera-uuid>
|
|
|
210
|
# Selectează [3] - Import cameră automat
|
|
|
211
|
# Setează destinația: /mnt/storage/photos
|
|
|
212
|
```
|
|
|
213
|
|
|
|
214
|
### Workflow Automat Camera
|
|
|
215
|
1. **Conectare cameră** → AutoNAS detectează UUID-ul configurat ca IMPORT
|
|
|
216
|
2. **Montare temporară** → Mount point temporar creat automat
|
|
|
217
|
3. **Background Import** → Service separat procesează fișiere fără timeout
|
|
|
218
|
4. **Organizare EXIF** → Sortare automată pe date din metadate
|
|
|
219
|
5. **Auto-Cleanup** → Demontare automată după finalizare
|
|
|
220
|
|
|
|
221
|
## 🚨 Troubleshooting Rapid
|
|
|
222
|
|
|
|
223
|
### Disk nu se detectează
|
|
|
224
|
```bash
|
|
|
225
|
journalctl -t autonas -f # Monitorizează log-urile
|
|
|
226
|
autonas show # Verifică device-urile detectate
|
|
|
227
|
udevadm monitor --subsystem-match=block # Debug udev
|
|
|
228
|
```
|
|
|
229
|
|
|
|
230
|
### Probleme NFS
|
|
|
231
|
```bash
|
|
|
232
|
autonas status # Verifică configurația
|
|
|
233
|
showmount -e localhost # Verifică export-urile
|
|
|
234
|
systemctl status nfs-kernel-server
|
|
|
235
|
```
|
|
|
236
|
|
|
|
237
|
### Probleme de Montare
|
|
|
238
|
```bash
|
|
|
239
|
autonas list # Verifică configurațiile
|
|
Bogdan Timofte
authored
3 months ago
|
240
|
autonas test <uuid|name|mount_point> # Testează configurația specifică
|
|
Bogdan Timofte
authored
3 months ago
|
241
|
mount | grep autonas # Verifică mount-urile active
|
|
|
242
|
```
|
|
|
243
|
|
|
|
244
|
## ⚙️ Arhitectura AutoNAS v3.0
|
|
|
245
|
|
|
|
246
|
### 📁 Organizarea Scripturilor
|
|
|
247
|
```
|
|
Bogdan Timofte
authored
2 weeks ago
|
248
|
/usr/local/sbin/
|
|
|
249
|
└── autonas # Singura comandă vizibilă utilizatorului
|
|
Bogdan Timofte
authored
3 months ago
|
250
|
|
|
Bogdan Timofte
authored
2 weeks ago
|
251
|
/usr/local/lib/xdev/autonas/
|
|
|
252
|
├── autonas-core.sh # Biblioteca centrală
|
|
Bogdan Timofte
authored
3 months ago
|
253
|
├── autonas-boot-scan.sh # Scanner la bootare
|
|
|
254
|
├── autonas-disk-handler.sh # Handler evenimente disk
|
|
|
255
|
├── autonas-media-importer.sh # Importer automat media
|
|
Bogdan Timofte
authored
2 weeks ago
|
256
|
├── autonas-network-handler.sh # Handler evenimente rețea
|
|
Bogdan Timofte
authored
3 months ago
|
257
|
├── autonas-udev-wrapper.sh # Wrapper pentru udev
|
|
Bogdan Timofte
authored
2 weeks ago
|
258
|
└── uninstall.sh # Uninstaller sistem
|
|
Bogdan Timofte
authored
3 months ago
|
259
|
```
|
|
|
260
|
|
|
|
261
|
### 🎯 Single Source of Truth
|
|
|
262
|
- **Zero duplicare cod** - toate funcțiile în `autonas-core.sh`
|
|
|
263
|
- **Interfață unificată** - toate operațiunile prin comanda `autonas`
|
|
|
264
|
- **Scripturi ascunse** - experiență utilizator curată
|
|
|
265
|
|
|
|
266
|
### 📊 Realizări v3.0
|
|
|
267
|
- **47% reducere cod** - ~2,300 linii eliminate prin refactorizare completă
|
|
|
268
|
- **Comandă unică vizibilă** - doar `autonas` în autocomplete
|
|
|
269
|
- **Organizare profesională** - toate utilitarele ascunse dar funcționale
|
|
|
270
|
- **Integrare completă** - toate serviciile și regulile actualizate
|
|
|
271
|
|
|
|
272
|
## ⚙️ Note Importante
|
|
|
273
|
|
|
|
274
|
1. **Rulează ca root**: Toate comenzile AutoNAS necesită `sudo`
|
|
|
275
|
2. **Configurații persistente**: Diskurile configurate se montează automat la conectare
|
|
|
276
|
3. **Cleanup automat**: Demontarea curăță automat mount points, IP-uri și export-uri NFS
|
|
|
277
|
4. **Siguranță date**: Dezinstalarea păstrează toate datele și configurațiile
|
|
Bogdan Timofte
authored
2 weeks ago
|
278
|
5. **Script organizare**: Doar `autonas` vizibil - toate utilitarele în `/usr/local/lib/xdev/autonas/`
|
|
Bogdan Timofte
authored
3 months ago
|
279
|
|
|
|
280
|
## 🎯 Use Cases Rapide
|
|
|
281
|
|
|
|
282
|
- **🌐 NFS Backup Server**: Disk extern → detectare automată → export NFS instant
|
|
|
283
|
- **📁 Storage Local**: Backup-uri locale rapide fără configurare rețea
|
|
|
284
|
- **📷 Import Camere**: Conectare cameră → import automat → organizare EXIF
|
|
|
285
|
- **🔧 Development**: Mixed storage (local + NFS) pentru workflow-uri complexe
|
|
|
286
|
|
|
|
287
|
---
|
|
|
288
|
|
|
|
289
|
**AutoNAS v3.0 - Clean Command Interface pentru Montare Automată** 🚀
|
|
|
290
|
|
|
|
291
|
*Doar comanda `autonas` vizibilă - interfață profesională și curată*
|
|
|
292
|
|
|
|
293
|
## Camera Import Automation
|
|
|
294
|
|
|
|
295
|
AutoNAS v3.0 introduce arhitectura revoluționară **Background Import** pentru import automat scalabil de camere digitale cu workflow complet `mount → import → unmount`.
|
|
|
296
|
|
|
|
297
|
### 🚀 **NOUĂ ARHITECTURĂ BACKGROUND IMPORT**
|
|
|
298
|
- **🔄 Service-Based Architecture** - Separare completă mount/import prin systemd services
|
|
|
299
|
- **⚡ Unlimited Duration** - Import-uri fără timeout constraints (comprobat cu 300+ files)
|
|
|
300
|
- **🛠️ Auto-Unmount** - Demontare automată după finalizarea import-ului
|
|
|
301
|
- **📊 Production Tested** - Validat cu camere reale Garmin (302 files, 100% success rate)
|
|
|
302
|
|
|
|
303
|
### Caracteristici Camera Import
|
|
|
304
|
- **🎯 Background Services** - Import rulează în servicii systemd separate fără timeout
|
|
|
305
|
- **Detectare automată** a structurilor de foldere pentru camere (DCIM, PRIVATE, MP_ROOT)
|
|
Bogdan Timofte
authored
2 weeks ago
|
306
|
- **Carduri SD/MMC GoPro** - detectare automată pentru carduri expuse ca `/dev/mmcblkNpM`
|
|
Bogdan Timofte
authored
3 months ago
|
307
|
- **Import cu EXIF** - organizare automată pe baza metadatelor temporale cu UTC conversion
|
|
Bogdan Timofte
authored
2 weeks ago
|
308
|
- **GoPro MP4** - preferă timestamp-ul filesystem/THM/LRV și sincronizează metadata importată în modul unattended
|
|
Bogdan Timofte
authored
3 months ago
|
309
|
- **Multiple formate suportate**: MP4, MOV, JPG, JPEG, PNG, ARW, DNG, MP4, AVI, MKV
|
|
|
310
|
- **Organizare automată pe date** din EXIF/QuickTime tags cu conversie UTC → Local Time
|
|
|
311
|
- **Dry-run mode** pentru testare fără modificarea fișierelor
|
|
|
312
|
- **Progress tracking** cu statistici detaliate
|
|
|
313
|
- **Cleanup GLV files** pentru camerele Garmin
|
|
|
314
|
- **Scalabilitate Production** - Testat cu sute de fișiere fără probleme
|
|
|
315
|
|
|
|
316
|
### Format Configurație IMPORT
|
|
|
317
|
```
|
|
Bogdan Timofte
authored
2 weeks ago
|
318
|
UUID:NAME:IMPORT:IMPORT:MOUNT_POINT:DESTINATION_PATH
|
|
Bogdan Timofte
authored
3 months ago
|
319
|
```
|
|
|
320
|
|
|
|
321
|
**Exemplu configurație:**
|
|
|
322
|
```
|
|
Bogdan Timofte
authored
2 weeks ago
|
323
|
1234-5678:camera-garmin:IMPORT:IMPORT:/mnt/autonas/camera-garmin:/mnt/storage/photos
|
|
|
324
|
766C-1A0F:gopro-sd:IMPORT:IMPORT:/mnt/autonas/gopro-sd:/mnt/autonas/ext01/@Camera/gopro
|
|
Bogdan Timofte
authored
3 months ago
|
325
|
```
|
|
|
326
|
|
|
|
327
|
### Workflow Import Automat (Background Architecture)
|
|
|
328
|
|
|
|
329
|
1. **Conectare cameră** → AutoNAS detectează UUID-ul configurat ca IMPORT
|
|
|
330
|
2. **Montare temporară** → Attach service montează în mount point temporar
|
|
|
331
|
3. **Background Import Launch** → Manager lansează direct `run_background_import()` process
|
|
|
332
|
4. **Import nelimitat** → Background service procesează fișiere fără timeout constraints
|
|
|
333
|
5. **Organizare EXIF** → Fișierele sunt sortate pe date din metadate (UTC → Local Time)
|
|
|
334
|
6. **Auto-Cleanup** → Background service apelează detach după finalizare
|
|
|
335
|
7. **Demontare automată** → Camera este demontată automat
|
|
|
336
|
8. **Mount cleanup** → Mount point temporar este curățat
|
|
|
337
|
|
|
|
338
|
**Avantaje Arhitectură Background:**
|
|
|
339
|
- ✅ **Scalabilitate infinită** - Nu există timeout-uri systemd pentru import
|
|
|
340
|
- ✅ **Robustețe** - Service separation previne crash-uri în mount operations
|
|
|
341
|
- ✅ **Monitorizare** - Log-uri separate pentru fiecare etapă
|
|
|
342
|
- ✅ **Production Ready** - Testat cu 302 fișiere, import complet în 36 minute
|
|
|
343
|
|
|
|
344
|
### Configurare Camera Import
|
|
|
345
|
|
|
|
346
|
```bash
|
|
|
347
|
# Adaugă configurație pentru cameră
|
|
|
348
|
autonas-config.sh add
|
|
|
349
|
|
|
|
350
|
# Selectează UUID-ul camerei
|
|
|
351
|
# Input UUID: 1234-5678
|
|
|
352
|
|
|
|
353
|
# Selectează tipul de configurare
|
|
|
354
|
# [3] - Import cameră automat
|
|
|
355
|
|
|
|
356
|
# Setează numele camerei
|
|
|
357
|
# Input name: camera-garmin
|
|
|
358
|
|
|
|
359
|
# Setează destinația pentru import
|
|
|
360
|
# Input destination: /mnt/storage/photos
|
|
|
361
|
|
|
|
362
|
# Script personalizat (opțional, default: autonas-camera-import.sh)
|
|
|
363
|
# Input script: [ENTER pentru default]
|
|
|
364
|
```
|
|
|
365
|
|
|
|
366
|
### Script Import Personalizat
|
|
|
367
|
|
|
|
368
|
Poți crea propriul script de import:
|
|
|
369
|
|
|
|
370
|
```bash
|
|
|
371
|
#!/bin/bash
|
|
|
372
|
# /usr/local/bin/my-camera-import.sh
|
|
|
373
|
|
|
|
374
|
MOUNT_POINT="$1"
|
|
|
375
|
DESTINATION="$2"
|
|
|
376
|
DISK_NAME="$3"
|
|
|
377
|
|
|
|
378
|
# Exemplu: Import specific pentru Canon
|
|
|
379
|
find "$MOUNT_POINT" -name "*.CR3" -exec cp {} "$DESTINATION/RAW/" \;
|
|
|
380
|
find "$MOUNT_POINT" -name "*.JPG" -exec cp {} "$DESTINATION/JPEG/" \;
|
|
|
381
|
|
|
|
382
|
echo "Import completed for $DISK_NAME"
|
|
|
383
|
exit 0
|
|
|
384
|
```
|
|
|
385
|
|
|
|
386
|
### Testare Configuration
|
|
|
387
|
|
|
|
388
|
```bash
|
|
|
389
|
# Listează configurațiile
|
|
|
390
|
autonas-config.sh list
|
|
|
391
|
|
|
|
392
|
# Testează configurația IMPORT
|
|
|
393
|
autonas-config.sh test camera-uuid
|
|
|
394
|
|
|
|
395
|
# Monitorizează log-urile
|
|
|
396
|
journalctl -t autonas -f
|
|
|
397
|
```
|
|
|
398
|
|
|
|
399
|
### Camera Import Script (autonas-camera-import.sh)
|
|
|
400
|
|
|
|
401
|
Script-ul default oferă:
|
|
|
402
|
- **Auto-detectare** structuri DCIM, PRIVATE, MP_ROOT
|
|
|
403
|
- **EXIF processing** cu exiftool pentru date precise
|
|
|
404
|
- **Organizare automată** în foldere YYYY-MM-DD
|
|
|
405
|
- **Redenumire intelligentă** cu timestamp-uri
|
|
|
406
|
- **Multiple opțiuni**: --dry-run, --verbose, --limit N
|
|
|
407
|
- **Error handling** robust cu logging detaliat
|
|
|
408
|
|
|
|
409
|
```bash
|
|
|
410
|
# Manual import test
|
|
|
411
|
autonas-camera-import.sh /mnt/camera /dest/path camera-name --dry-run --verbose
|
|
|
412
|
```
|
|
|
413
|
|
|
|
414
|
---
|
|
|
415
|
|
|
|
416
|
**AutoNAS v3.0 - Clean Command Interface pentru Montare Automată** 🚀
|
|
|
417
|
|
|
|
418
|
*Doar comanda `autonas` vizibilă - interfață profesională și curată*
|
|
|
419
|
|
|
Bogdan Timofte
authored
3 months ago
|
420
|
*Dezvoltat pentru ecosistemul Proxmox/Debian cu focus pe automatizare și siguranța datelor*
|