# disk/file management

## disk

### show disk size

* check disk space: `df`
  * `-h` - human readable
 
### show folder size

* show folder size: `sudo du -shc ./*`

#### find biggest folders of current directory
`du -hs * | sort -rh | head -5`

## file movements

### rsync

#### Links
* https://wiki.ubuntuusers.de/rsync/

#### options
* `a` - contains **highly recommended**
	* `-r` copy subfolder
	* `-l` copy symbolic links
	* `-p` keep permissions of source files
	* `-t` keep timestamps of source files
	* `-g` keep group permissions of source files
	* `-o` keep user permissions of source files (only root)
	* `-D` keep device permissions of source files (only root)
* `v` - verbose
* `h` - human readable
* `z` - with compression
* `-e` - remote shell auswählen
	* `-e 'ssh -p 222'` ändert ssh port auf e.g. 222

#### local to remote server

```
rsync [option] [source] user@hostname-or-ip:[destination path]
rsync -avhz /home/source-rsync/ user@your-remote-server.com:/home/dest-rsync/
```


#### remote to local server

```
rsync -avhz user@your-remote-server.com:/home/dest-rsync/ /home/source-rsync/
```

### scp

`scp <Optionen> <Quellpfad> <Zielpfad>`

* Quellpfad: `<Nutzer>@<Host>:<Verzeichnis/Datei.Endung>`
* optionen:
	* `-C` Kompression nutzen (compression)
    * `-p` Datei-Attribute auf Zieldateien übertragen (permissions)
    * `-r` Verzeichnisse rekursiv kopieren (recursive)
	* `-v` Erweiterte Ausgabe anzeigen (verbose)
	* `-q` Ausgabe unterdrücken (quiet)
	* `-3` Daten durch lokales System senden (third party)

example:

```
scp -r srv01-local_draab:/var/lib/docker/volumes/wireguard_wireguard-config/_data/ /home/danielraab/wireguard/
```