{"id":17491838,"url":"https://github.com/adamtabrams/sink","last_synced_at":"2025-06-29T11:32:39.067Z","repository":{"id":138305469,"uuid":"266352308","full_name":"adamtabrams/sink","owner":"adamtabrams","description":"A simple tool for maintaining a backup","archived":false,"fork":false,"pushed_at":"2021-10-01T16:17:23.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-11T07:26:53.922Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adamtabrams.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-23T14:23:57.000Z","updated_at":"2021-01-23T02:50:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"291c725e-877f-4bc6-9766-e9545f7158b4","html_url":"https://github.com/adamtabrams/sink","commit_stats":{"total_commits":18,"total_committers":2,"mean_commits":9.0,"dds":"0.33333333333333337","last_synced_commit":"e74633c2f47a35ab985e0bac6f259bd15a85f206"},"previous_names":[],"tags_count":9,"template":null,"template_full_name":null,"purl":"pkg:github/adamtabrams/sink","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamtabrams%2Fsink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamtabrams%2Fsink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamtabrams%2Fsink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamtabrams%2Fsink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adamtabrams","download_url":"https://codeload.github.com/adamtabrams/sink/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamtabrams%2Fsink/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262586274,"owners_count":23332818,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-19T08:05:28.464Z","updated_at":"2025-06-29T11:32:39.038Z","avatar_url":"https://github.com/adamtabrams.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\nSink is a very simple backup tool. It relies on symbolic links to track\nfiles and directories on you system. Then it uses rsync to save\nbackup copies of them to a destination directory. Rsync has the benifit\nof detecting if a file has already been backed up or has been modified.\nIn these cases, rsynce only needs to transfer the difference between the\nactual and the backed up copy. Sink is likely most useful when your backup\nwill reside on network attached storage or an external hard drive.\n\n\n# Usage\n\nMake a directory on you backup destination.\n* `mkdir /Volumes/user/auto-backup`\n\nCreate a link to that directory.\n* `./backup-to /Volumes/user/auto-backups`\n\nYou can place files the tracking directory.\n* `mv ~/Downloads/bookmarks.html tracking`\n\nOr create a link in tracking to a file or directory.\n* `./start-tracking ~/Documents`\n\nThen backup the data being tracked to its destination.\n* `./sink`\n\nYou can also check logs from the backup process.\n* `less history.log`\n\n\n## Tips\n\n* The backup destination must be present when you sink.\n\n* You should only use absolute paths with this tool.\n\n* You probably shouldn't track any directory that contains this tool.\n\n\n## Scheduling\n\nYou could schedule this as a recurring job with cron.\n\nA simplier way to automate backups might be to run sink at login with .profile.\n\nBetter yet, you could run sink 20 minutes after login.\nThis gives time for startup processes to finish and\nfor connecting to network storage.\n\n* `sinklater() { sleep 1200; cd ~/repos/sink \u0026\u0026 ./sink; }; sinklater \u0026\u003e/dev/null \u0026`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamtabrams%2Fsink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamtabrams%2Fsink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamtabrams%2Fsink/lists"}