Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UnUsedOS

A Linux system analysis toolkit for identifying unused files and packages on Supercomputing System (SCS) appliances, using filesystem access timestamps, package usage reports, and pandas-based data analysis.

UnUsedOS analyzes Linux systems to find files and packages that are never accessed, helping reduce OS image bloat on SCS appliances. It combines shell scripts for file usage collection, Python scripts for package usage analysis, and Jupyter notebooks for interactive exploration — producing security patches that remove unused components.

Prerequisites

  • Linux system (tested on Ubuntu Lucid/Precise/Xenial)
  • Python 3 with pandas
  • Standard Unix tools: find, stat, dpkg, shar, csvkit

Setup

git clone https://github.com/biofool/UnUsedOS.git
cd UnUsedOS
pip install pandas

Usage

File usage report

# Generate a file access-time report for a directory tree
bash FileUsageReport.sh /path/to/analyze

Package usage analysis

# Basic package usage report
python PackageUsageReport.py
# Modified report with validation
python ModifiedPackageUsageReportWithValidation.py

Interactive analysis (Jupyter)

jupyter notebook UnusedFilesAndPackages.ipynb
jupyter notebook UnusedPackageReport.ipynb
jupyter notebook WhatsUnused.ipynb

Security patch creation

bash CreateSecurityPatch/CreateSecurityPatchBundle.sh
bash CreateSecurityPatch/SecurityPatchInstaller.sh

Stats collection

bash StatsCollector/installVMCollector.sh
bash StatsCollector/BloatedStatsCollectorInc.sh

Project Structure

UnUsedOS/
├── UnusedFilesAndPackages.py # Main analysis script
├── UnusedFilesAndPackages.ipynb # Interactive notebook (v1)
├── UnusedFilesAndPackages-V2.ipynb # Interactive notebook (v2)
├── UnusedPackageReport.py # Package usage report
├── UnusedPackageReport.ipynb # Package report notebook
├── WhatsUnused.ipynb # Survey notebook
├── WhatsUnusedSurvey.py # Survey script
├── PackageUsageReport.py # Basic package report
├── ModifiedPackageUsageReport.py # Modified package report
├── ModifiedPackageUsageReportWithValidation.py # With validation
├── access_times.py # Access time utilities
├── DescribeDataFrames.py # DataFrame structure inspector
├── FileUsageReport.sh # File usage shell report
├── ConCSV2PSV.sh # CSV to PSV converter
├── MakeShar.sh # Create shar archive
├── AccessValidate/ # Access validation tools
├── CreateSecurityPatch/ # Security patch creation
├── Dictionaries/ # Data dictionaries
├── StatsCollector/ # VM stats collection
├── bloated-scs-full_*.txt # SCS package file lists (various versions)
└── allpackages.txt # All packages reference

License

See repository metadata for license details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UnUsedOS

A Linux system analysis toolkit for identifying unused files and packages on Supercomputing System (SCS) appliances, using filesystem access timestamps, package usage reports, and pandas-based data analysis.

UnUsedOS analyzes Linux systems to find files and packages that are never accessed, helping reduce OS image bloat on SCS appliances. It combines shell scripts for file usage collection, Python scripts for package usage analysis, and Jupyter notebooks for interactive exploration — producing security patches that remove unused components.

Prerequisites

  • Linux system (tested on Ubuntu Lucid/Precise/Xenial)
  • Python 3 with pandas
  • Standard Unix tools: find, stat, dpkg, shar, csvkit

Setup

git clone https://github.com/biofool/UnUsedOS.git
cd UnUsedOS
pip install pandas

Usage

File usage report

# Generate a file access-time report for a directory tree
bash FileUsageReport.sh /path/to/analyze

Package usage analysis

# Basic package usage report
python PackageUsageReport.py
# Modified report with validation
python ModifiedPackageUsageReportWithValidation.py

Interactive analysis (Jupyter)

jupyter notebook UnusedFilesAndPackages.ipynb
jupyter notebook UnusedPackageReport.ipynb
jupyter notebook WhatsUnused.ipynb

Security patch creation

bash CreateSecurityPatch/CreateSecurityPatchBundle.sh
bash CreateSecurityPatch/SecurityPatchInstaller.sh

Stats collection

bash StatsCollector/installVMCollector.sh
bash StatsCollector/BloatedStatsCollectorInc.sh

Project Structure

UnUsedOS/
├── UnusedFilesAndPackages.py # Main analysis script
├── UnusedFilesAndPackages.ipynb # Interactive notebook (v1)
├── UnusedFilesAndPackages-V2.ipynb # Interactive notebook (v2)
├── UnusedPackageReport.py # Package usage report
├── UnusedPackageReport.ipynb # Package report notebook
├── WhatsUnused.ipynb # Survey notebook
├── WhatsUnusedSurvey.py # Survey script
├── PackageUsageReport.py # Basic package report
├── ModifiedPackageUsageReport.py # Modified package report
├── ModifiedPackageUsageReportWithValidation.py # With validation
├── access_times.py # Access time utilities
├── DescribeDataFrames.py # DataFrame structure inspector
├── FileUsageReport.sh # File usage shell report
├── ConCSV2PSV.sh # CSV to PSV converter
├── MakeShar.sh # Create shar archive
├── AccessValidate/ # Access validation tools
├── CreateSecurityPatch/ # Security patch creation
├── Dictionaries/ # Data dictionaries
├── StatsCollector/ # VM stats collection
├── bloated-scs-full_*.txt # SCS package file lists (various versions)
└── allpackages.txt # All packages reference

License

See repository metadata for license details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UnUsedOS

A Linux system analysis toolkit for identifying unused files and packages on Supercomputing System (SCS) appliances, using filesystem access timestamps, package usage reports, and pandas-based data analysis.

UnUsedOS analyzes Linux systems to find files and packages that are never accessed, helping reduce OS image bloat on SCS appliances. It combines shell scripts for file usage collection, Python scripts for package usage analysis, and Jupyter notebooks for interactive exploration — producing security patches that remove unused components.

Prerequisites

  • Linux system (tested on Ubuntu Lucid/Precise/Xenial)
  • Python 3 with pandas
  • Standard Unix tools: find, stat, dpkg, shar, csvkit

Setup

git clone https://github.com/biofool/UnUsedOS.git
cd UnUsedOS
pip install pandas

Usage

File usage report

# Generate a file access-time report for a directory tree
bash FileUsageReport.sh /path/to/analyze

Package usage analysis

# Basic package usage report
python PackageUsageReport.py
# Modified report with validation
python ModifiedPackageUsageReportWithValidation.py

Interactive analysis (Jupyter)

jupyter notebook UnusedFilesAndPackages.ipynb
jupyter notebook UnusedPackageReport.ipynb
jupyter notebook WhatsUnused.ipynb

Security patch creation

bash CreateSecurityPatch/CreateSecurityPatchBundle.sh
bash CreateSecurityPatch/SecurityPatchInstaller.sh

Stats collection

bash StatsCollector/installVMCollector.sh
bash StatsCollector/BloatedStatsCollectorInc.sh

Project Structure

UnUsedOS/
├── UnusedFilesAndPackages.py # Main analysis script
├── UnusedFilesAndPackages.ipynb # Interactive notebook (v1)
├── UnusedFilesAndPackages-V2.ipynb # Interactive notebook (v2)
├── UnusedPackageReport.py # Package usage report
├── UnusedPackageReport.ipynb # Package report notebook
├── WhatsUnused.ipynb # Survey notebook
├── WhatsUnusedSurvey.py # Survey script
├── PackageUsageReport.py # Basic package report
├── ModifiedPackageUsageReport.py # Modified package report
├── ModifiedPackageUsageReportWithValidation.py # With validation
├── access_times.py # Access time utilities
├── DescribeDataFrames.py # DataFrame structure inspector
├── FileUsageReport.sh # File usage shell report
├── ConCSV2PSV.sh # CSV to PSV converter
├── MakeShar.sh # Create shar archive
├── AccessValidate/ # Access validation tools
├── CreateSecurityPatch/ # Security patch creation
├── Dictionaries/ # Data dictionaries
├── StatsCollector/ # VM stats collection
├── bloated-scs-full_*.txt # SCS package file lists (various versions)
└── allpackages.txt # All packages reference

License

See repository metadata for license details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UnUsedOS

A Linux system analysis toolkit for identifying unused files and packages on Supercomputing System (SCS) appliances, using filesystem access timestamps, package usage reports, and pandas-based data analysis.

UnUsedOS analyzes Linux systems to find files and packages that are never accessed, helping reduce OS image bloat on SCS appliances. It combines shell scripts for file usage collection, Python scripts for package usage analysis, and Jupyter notebooks for interactive exploration — producing security patches that remove unused components.

Prerequisites

  • Linux system (tested on Ubuntu Lucid/Precise/Xenial)
  • Python 3 with pandas
  • Standard Unix tools: find, stat, dpkg, shar, csvkit

Setup

git clone https://github.com/biofool/UnUsedOS.git
cd UnUsedOS
pip install pandas

Usage

File usage report

# Generate a file access-time report for a directory tree
bash FileUsageReport.sh /path/to/analyze

Package usage analysis

# Basic package usage report
python PackageUsageReport.py
# Modified report with validation
python ModifiedPackageUsageReportWithValidation.py

Interactive analysis (Jupyter)

jupyter notebook UnusedFilesAndPackages.ipynb
jupyter notebook UnusedPackageReport.ipynb
jupyter notebook WhatsUnused.ipynb

Security patch creation

bash CreateSecurityPatch/CreateSecurityPatchBundle.sh
bash CreateSecurityPatch/SecurityPatchInstaller.sh

Stats collection

bash StatsCollector/installVMCollector.sh
bash StatsCollector/BloatedStatsCollectorInc.sh

Project Structure

UnUsedOS/
├── UnusedFilesAndPackages.py # Main analysis script
├── UnusedFilesAndPackages.ipynb # Interactive notebook (v1)
├── UnusedFilesAndPackages-V2.ipynb # Interactive notebook (v2)
├── UnusedPackageReport.py # Package usage report
├── UnusedPackageReport.ipynb # Package report notebook
├── WhatsUnused.ipynb # Survey notebook
├── WhatsUnusedSurvey.py # Survey script
├── PackageUsageReport.py # Basic package report
├── ModifiedPackageUsageReport.py # Modified package report
├── ModifiedPackageUsageReportWithValidation.py # With validation
├── access_times.py # Access time utilities
├── DescribeDataFrames.py # DataFrame structure inspector
├── FileUsageReport.sh # File usage shell report
├── ConCSV2PSV.sh # CSV to PSV converter
├── MakeShar.sh # Create shar archive
├── AccessValidate/ # Access validation tools
├── CreateSecurityPatch/ # Security patch creation
├── Dictionaries/ # Data dictionaries
├── StatsCollector/ # VM stats collection
├── bloated-scs-full_*.txt # SCS package file lists (various versions)
└── allpackages.txt # All packages reference

License

See repository metadata for license details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UnUsedOS

A Linux system analysis toolkit for identifying unused files and packages on Supercomputing System (SCS) appliances, using filesystem access timestamps, package usage reports, and pandas-based data analysis.

UnUsedOS analyzes Linux systems to find files and packages that are never accessed, helping reduce OS image bloat on SCS appliances. It combines shell scripts for file usage collection, Python scripts for package usage analysis, and Jupyter notebooks for interactive exploration — producing security patches that remove unused components.

Prerequisites

  • Linux system (tested on Ubuntu Lucid/Precise/Xenial)
  • Python 3 with pandas
  • Standard Unix tools: find, stat, dpkg, shar, csvkit

Setup

git clone https://github.com/biofool/UnUsedOS.git
cd UnUsedOS
pip install pandas

Usage

File usage report

# Generate a file access-time report for a directory tree
bash FileUsageReport.sh /path/to/analyze

Package usage analysis

# Basic package usage report
python PackageUsageReport.py
# Modified report with validation
python ModifiedPackageUsageReportWithValidation.py

Interactive analysis (Jupyter)

jupyter notebook UnusedFilesAndPackages.ipynb
jupyter notebook UnusedPackageReport.ipynb
jupyter notebook WhatsUnused.ipynb

Security patch creation

bash CreateSecurityPatch/CreateSecurityPatchBundle.sh
bash CreateSecurityPatch/SecurityPatchInstaller.sh

Stats collection

bash StatsCollector/installVMCollector.sh
bash StatsCollector/BloatedStatsCollectorInc.sh

Project Structure

UnUsedOS/
├── UnusedFilesAndPackages.py # Main analysis script
├── UnusedFilesAndPackages.ipynb # Interactive notebook (v1)
├── UnusedFilesAndPackages-V2.ipynb # Interactive notebook (v2)
├── UnusedPackageReport.py # Package usage report
├── UnusedPackageReport.ipynb # Package report notebook
├── WhatsUnused.ipynb # Survey notebook
├── WhatsUnusedSurvey.py # Survey script
├── PackageUsageReport.py # Basic package report
├── ModifiedPackageUsageReport.py # Modified package report
├── ModifiedPackageUsageReportWithValidation.py # With validation
├── access_times.py # Access time utilities
├── DescribeDataFrames.py # DataFrame structure inspector
├── FileUsageReport.sh # File usage shell report
├── ConCSV2PSV.sh # CSV to PSV converter
├── MakeShar.sh # Create shar archive
├── AccessValidate/ # Access validation tools
├── CreateSecurityPatch/ # Security patch creation
├── Dictionaries/ # Data dictionaries
├── StatsCollector/ # VM stats collection
├── bloated-scs-full_*.txt # SCS package file lists (various versions)
└── allpackages.txt # All packages reference

License

See repository metadata for license details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UnUsedOS

A Linux system analysis toolkit for identifying unused files and packages on Supercomputing System (SCS) appliances, using filesystem access timestamps, package usage reports, and pandas-based data analysis.

UnUsedOS analyzes Linux systems to find files and packages that are never accessed, helping reduce OS image bloat on SCS appliances. It combines shell scripts for file usage collection, Python scripts for package usage analysis, and Jupyter notebooks for interactive exploration — producing security patches that remove unused components.

Prerequisites

  • Linux system (tested on Ubuntu Lucid/Precise/Xenial)
  • Python 3 with pandas
  • Standard Unix tools: find, stat, dpkg, shar, csvkit

Setup

git clone https://github.com/biofool/UnUsedOS.git
cd UnUsedOS
pip install pandas

Usage

File usage report

# Generate a file access-time report for a directory tree
bash FileUsageReport.sh /path/to/analyze

Package usage analysis

# Basic package usage report
python PackageUsageReport.py
# Modified report with validation
python ModifiedPackageUsageReportWithValidation.py

Interactive analysis (Jupyter)

jupyter notebook UnusedFilesAndPackages.ipynb
jupyter notebook UnusedPackageReport.ipynb
jupyter notebook WhatsUnused.ipynb

Security patch creation

bash CreateSecurityPatch/CreateSecurityPatchBundle.sh
bash CreateSecurityPatch/SecurityPatchInstaller.sh

Stats collection

bash StatsCollector/installVMCollector.sh
bash StatsCollector/BloatedStatsCollectorInc.sh

Project Structure

UnUsedOS/
├── UnusedFilesAndPackages.py # Main analysis script
├── UnusedFilesAndPackages.ipynb # Interactive notebook (v1)
├── UnusedFilesAndPackages-V2.ipynb # Interactive notebook (v2)
├── UnusedPackageReport.py # Package usage report
├── UnusedPackageReport.ipynb # Package report notebook
├── WhatsUnused.ipynb # Survey notebook
├── WhatsUnusedSurvey.py # Survey script
├── PackageUsageReport.py # Basic package report
├── ModifiedPackageUsageReport.py # Modified package report
├── ModifiedPackageUsageReportWithValidation.py # With validation
├── access_times.py # Access time utilities
├── DescribeDataFrames.py # DataFrame structure inspector
├── FileUsageReport.sh # File usage shell report
├── ConCSV2PSV.sh # CSV to PSV converter
├── MakeShar.sh # Create shar archive
├── AccessValidate/ # Access validation tools
├── CreateSecurityPatch/ # Security patch creation
├── Dictionaries/ # Data dictionaries
├── StatsCollector/ # VM stats collection
├── bloated-scs-full_*.txt # SCS package file lists (various versions)
└── allpackages.txt # All packages reference

License

See repository metadata for license details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UnUsedOS

A Linux system analysis toolkit for identifying unused files and packages on Supercomputing System (SCS) appliances, using filesystem access timestamps, package usage reports, and pandas-based data analysis.

UnUsedOS analyzes Linux systems to find files and packages that are never accessed, helping reduce OS image bloat on SCS appliances. It combines shell scripts for file usage collection, Python scripts for package usage analysis, and Jupyter notebooks for interactive exploration — producing security patches that remove unused components.

Prerequisites

  • Linux system (tested on Ubuntu Lucid/Precise/Xenial)
  • Python 3 with pandas
  • Standard Unix tools: find, stat, dpkg, shar, csvkit

Setup

git clone https://github.com/biofool/UnUsedOS.git
cd UnUsedOS
pip install pandas

Usage

File usage report

# Generate a file access-time report for a directory tree
bash FileUsageReport.sh /path/to/analyze

Package usage analysis

# Basic package usage report
python PackageUsageReport.py
# Modified report with validation
python ModifiedPackageUsageReportWithValidation.py

Interactive analysis (Jupyter)

jupyter notebook UnusedFilesAndPackages.ipynb
jupyter notebook UnusedPackageReport.ipynb
jupyter notebook WhatsUnused.ipynb

Security patch creation

bash CreateSecurityPatch/CreateSecurityPatchBundle.sh
bash CreateSecurityPatch/SecurityPatchInstaller.sh

Stats collection

bash StatsCollector/installVMCollector.sh
bash StatsCollector/BloatedStatsCollectorInc.sh

Project Structure

UnUsedOS/
├── UnusedFilesAndPackages.py # Main analysis script
├── UnusedFilesAndPackages.ipynb # Interactive notebook (v1)
├── UnusedFilesAndPackages-V2.ipynb # Interactive notebook (v2)
├── UnusedPackageReport.py # Package usage report
├── UnusedPackageReport.ipynb # Package report notebook
├── WhatsUnused.ipynb # Survey notebook
├── WhatsUnusedSurvey.py # Survey script
├── PackageUsageReport.py # Basic package report
├── ModifiedPackageUsageReport.py # Modified package report
├── ModifiedPackageUsageReportWithValidation.py # With validation
├── access_times.py # Access time utilities
├── DescribeDataFrames.py # DataFrame structure inspector
├── FileUsageReport.sh # File usage shell report
├── ConCSV2PSV.sh # CSV to PSV converter
├── MakeShar.sh # Create shar archive
├── AccessValidate/ # Access validation tools
├── CreateSecurityPatch/ # Security patch creation
├── Dictionaries/ # Data dictionaries
├── StatsCollector/ # VM stats collection
├── bloated-scs-full_*.txt # SCS package file lists (various versions)
└── allpackages.txt # All packages reference

License

See repository metadata for license details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UnUsedOS

A Linux system analysis toolkit for identifying unused files and packages on Supercomputing System (SCS) appliances, using filesystem access timestamps, package usage reports, and pandas-based data analysis.

UnUsedOS analyzes Linux systems to find files and packages that are never accessed, helping reduce OS image bloat on SCS appliances. It combines shell scripts for file usage collection, Python scripts for package usage analysis, and Jupyter notebooks for interactive exploration — producing security patches that remove unused components.

Prerequisites

  • Linux system (tested on Ubuntu Lucid/Precise/Xenial)
  • Python 3 with pandas
  • Standard Unix tools: find, stat, dpkg, shar, csvkit

Setup

git clone https://github.com/biofool/UnUsedOS.git
cd UnUsedOS
pip install pandas

Usage

File usage report

# Generate a file access-time report for a directory tree
bash FileUsageReport.sh /path/to/analyze

Package usage analysis

# Basic package usage report
python PackageUsageReport.py
# Modified report with validation
python ModifiedPackageUsageReportWithValidation.py

Interactive analysis (Jupyter)

jupyter notebook UnusedFilesAndPackages.ipynb
jupyter notebook UnusedPackageReport.ipynb
jupyter notebook WhatsUnused.ipynb

Security patch creation

bash CreateSecurityPatch/CreateSecurityPatchBundle.sh
bash CreateSecurityPatch/SecurityPatchInstaller.sh

Stats collection

bash StatsCollector/installVMCollector.sh
bash StatsCollector/BloatedStatsCollectorInc.sh

Project Structure

UnUsedOS/
├── UnusedFilesAndPackages.py # Main analysis script
├── UnusedFilesAndPackages.ipynb # Interactive notebook (v1)
├── UnusedFilesAndPackages-V2.ipynb # Interactive notebook (v2)
├── UnusedPackageReport.py # Package usage report
├── UnusedPackageReport.ipynb # Package report notebook
├── WhatsUnused.ipynb # Survey notebook
├── WhatsUnusedSurvey.py # Survey script
├── PackageUsageReport.py # Basic package report
├── ModifiedPackageUsageReport.py # Modified package report
├── ModifiedPackageUsageReportWithValidation.py # With validation
├── access_times.py # Access time utilities
├── DescribeDataFrames.py # DataFrame structure inspector
├── FileUsageReport.sh # File usage shell report
├── ConCSV2PSV.sh # CSV to PSV converter
├── MakeShar.sh # Create shar archive
├── AccessValidate/ # Access validation tools
├── CreateSecurityPatch/ # Security patch creation
├── Dictionaries/ # Data dictionaries
├── StatsCollector/ # VM stats collection
├── bloated-scs-full_*.txt # SCS package file lists (various versions)
└── allpackages.txt # All packages reference

License

See repository metadata for license details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors