Skip to content

Instantly share code, notes, and snippets.

@willfurnass
Last active February 20, 2022 12:03
Show Gist options
  • Save willfurnass/7db2a26a7a147cc8b86676651e1ab8c1 to your computer and use it in GitHub Desktop.
Save willfurnass/7db2a26a7a147cc8b86676651e1ab8c1 to your computer and use it in GitHub Desktop.
Extract usernames and emails from a Synology DSS config dump file (.dss)
#!/bin/bash
# Will Furnass
# Oct 2017
if [[ $# -lt 1 ]]; then
echo 1>&2 "Extract list of user email addresses from Synology DSS '.dss' config dump"
exit 1
fi
dss_path="$1"
if [[ ! ( -f $dss_path && -r $dss_path ) ]]; then
echo 1>&2 "Synology .dss config dump not readable"
exit 2
fi
dss_file="$(basename ${dss_path})"
tmp_dir=$(mktemp -d)
pushd "${tmp_dir}" > /dev/null
cp "$dss_path" "${dss_file}.tar.xz"
tar --warning=no-timestamp -Jxf "${dss_file}.tar.xz"
#sqlite3 -column ConfigBkp/_Syno_ConfBkp.db 'SELECT DISTINCT name, mail FROM confbkp_user_tb WHERE mail != "";'
sqlite3 ConfigBkp/_Syno_ConfBkp.db 'SELECT DISTINCT name, mail FROM confbkp_user_tb WHERE mail != "";' | column -t -s "|"
popd > /dev/null
rm -r "${tmp_dir}"
@mac-city
Copy link

mac-city commented Feb 10, 2022

i figured it out, I dropped the .dss file on my macOS archive utility and there is all was! your original post helped me figure that out, so thanks for posting it.

@jdjdjd4096
Copy link

jdjdjd4096 commented Feb 20, 2022

Hello Will.
I started a small project that uncompress from .dss files more data than only emails. I hope that this project helps others solve their problems during Synology recovery or during the comparison process versus previous configuration snapshots. https://github.com/jdjdjd4096/SynoDSSexporter .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment