Skip to main content

fastcopy-file-transfer-utility

High-performance file copying and transfer utility with parallel streams, integrity verification, and automation capabilities

الانتقال إلى التثبيت

معلومات المصدر

المستودع
reason-machines/devtools-skills
آخر نشاط في المصدر
٧ يوليو ٢٠٢٦ في ١٠:٣٩
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
fastcopy-file-transfer-utility
description
High-performance file copying and transfer utility with parallel streams, integrity verification, and automation capabilities
triggers
["how do I use FastCopy for bulk file transfers","configure FastCopy with YAML profiles","set up parallel file copying with FastCopy","FastCopy CLI commands and options","automate file transfers with FastCopy","verify file integrity during FastCopy transfers","create FastCopy transfer profiles","optimize FastCopy performance settings"]
# FastCopy File Transfer Utility > Skill by [ara.so](https://ara.so) — Devtools Skills collection. ## Overview FastCopy is a high-performance file duplication and transfer utility that supports multi-threaded copying, integrity verification, profile-based automation, and cross-platform operation. It's designed for scenarios requiring fast, reliable bulk file transfers, backups, migrations, and synchronization. **Key capabilities:** - Parallel stream transfers (up to 64 concurrent streams) - YAML-based profile configuration - CLI and GUI modes - Integrity checking (SHA-256, CRC-32) - Auto-retry and resume on failure - Platform support: Windows, macOS, Linux ## Installation ### Windows ```bash # Download from official source or repository # Extract to desired location # Add to PATH for CLI access ``` ### macOS ```bash # Install via package manager or direct download # Make executable chmod +x fastcopy sudo mv fastcopy /usr/local/bin/ ``` ### Linux ```bash # Ubuntu/Debian sudo apt-get install fastcopy # Fedora sudo dnf install fastcopy # Arch yay -S fastcopy ``` ## CLI Commands ### Basic Usage ```bash # Simple copy with default settings fastcopy /source/path /destination/path # Copy with specific number of streams fastcopy /source /dest --streams 32 # Copy with integrity verification fastcopy /source /dest --verify # High priority transfer with debug logging fastcopy /source /dest --priority high --log-level debug # Disable verification for speed fastcopy large_file.iso /backups/ --no-verify # Add metadata tag fastcopy /source /dest --tag "backup_2026_07_15" ``` ### Profile-Based Transfers ```bash # Use predefined profile fastcopy --profile /path/to/profile.yaml # Override profile settings fastcopy --profile profile.yaml --streams 64 # List available profiles fastcopy --list-profiles # Validate profile without executing fastcopy --profile profile.yaml --dry-run ``` ### Advanced Options ```bash # Resume interrupted transfer fastcopy /source /dest --resume # Watch mode for continuous sync fastcopy /source /dest --watch --interval 300 # Exclude patterns fastcopy /source /dest --exclude "*.tmp,*.log" # Include only specific patterns fastcopy /source /dest --include "*.mp4,*.mov" # Copy with bandwidth limit (MB/s) fastcopy /source /dest --limit 100 # Generate transfer report fastcopy /source /dest --report /path/to/report.json ``` ## Configuration ### YAML Profile Structure Create a profile file (e.g., `production-backup.yaml`): ```yaml # Production backup profile transfer: mode: "turbo" # standard, balanced, turbo streams: 48 # concurrent streams (1-64) buffer_size_mb: 256 # buffer per stream verify: true # enable integrity checks resume: always # always, on_failure, never retry_count: 5 retry_backoff_seconds: 30 paths: source: "/mnt/production/data" destination: "/mnt/backup/daily" filters: include: - "*.sql" - "*.bak" - "*.json" exclude: - "*.tmp" - "*.cache" - ".git/*" schedule: type: "cron" # one_time, watch, cron cron_expression: "0 2 * * *" # daily at 2 AM performance: priority: "high" # low, normal, high, realtime use_cache: true prefetch: true compression: false # compress during transfer logging: level: "info" # debug, info, warn, error file: "/var/log/fastcopy/production-backup.log" rotate: true max_size_mb: 100 hooks: on_start: "/opt/scripts/notify_start.sh" on_complete: "/opt/scripts/notify_complete.sh {bytes} {duration}" on_error: "/opt/scripts/alert_error.sh {error}" on_retry: "echo 'Retrying transfer...'" notifications: email: enabled: true smtp_server: "smtp.company.com" from: "fastcopy@company.com" to: ["admin@company.com"] on_events: ["complete", "error"] ``` ### Minimal Profile ```yaml transfer: mode: "balanced" streams: 16 verify: true paths: source: "/source/folder" destination: "/backup/folder" ``` ### Watch Mode Profile ```yaml transfer: mode: "standard" streams: 8 verify: true resume: on_failure paths: source: "/home/user/Documents" destination: "/mnt/nas/Documents" schedule: type: "watch" interval_seconds: 600 # check every 10 minutes filters: exclude: - ".DS_Store" - "Thumbs.db" - "*.swp" ``` ## Common Patterns ### Bulk Media Migration ```bash # Profile: media-migration.yaml ``` ```yaml transfer: mode: "turbo" streams: 64 buffer_size_mb: 512 verify: true resume: always paths: source: "/mnt/old-storage/media" destination: "/mnt/new-storage/media" filters: include: - "*.mp4" - "*.mov" - "*.mkv" - "*.avi" performance: priority: "high" use_cache: true prefetch: true logging: level: "info" file: "/var/log/fastcopy/media-migration.log" hooks: on_complete: "notify-send 'Media migration complete'" ``` ```bash fastcopy --profile media-migration.yaml ``` ### Database Backup ```bash # Profile: db-backup.yaml ``` ```yaml transfer: mode: "balanced" streams: 16 buffer_size_mb: 128 verify: true resume: always paths: source: "/var/lib/postgresql/backups" destination: "//nas.company.local/db-backups" schedule: type: "cron" cron_expression: "0 3 * * *" hooks: on_start: "pg_dump -U postgres mydb > /var/lib/postgresql/backups/mydb_$(date +%Y%m%d).sql" on_complete: "find /var/lib/postgresql/backups -mtime +7 -delete" on_error: "curl -X POST https://hooks.slack.com/services/$SLACK_WEBHOOK -d '{\"text\":\"DB backup failed\"}'" ``` ### Development Environment Sync ```javascript // Node.js wrapper for FastCopy const { execSync } = require('child_process'); const fs = require('fs'); const path = require('path'); class FastCopySync { constructor(profilePath) { this.profilePath = profilePath; } sync(options = {}) { const args = ['fastcopy', '--profile', this.profilePath]; if (options.streams) args.push('--streams', options.streams); if (options.priority) args.push('--priority', options.priority); if (options.dryRun) args.push('--dry-run'); const cmd = args.join(' '); console.log(`Executing: ${cmd}`); try { const output = execSync(cmd, { encoding: 'utf8' }); console.log(output); return { success: true, output }; } catch (error) { console.error('FastCopy failed:', error.message); return { success: false, error: error.message }; } } createProfile(source, destination, config = {}) { const profile = { transfer: { mode: config.mode || 'balanced', streams: config.streams || 16, verify: config.verify !== false, resume: config.resume || 'on_failure' }, paths: { source, destination }, filters: config.filters || {}, hooks: config.hooks || {} }; const profilePath = path.join(process.cwd(), 'fastcopy-profile.yaml'); fs.writeFileSync(profilePath, JSON.stringify(profile, null, 2)); return profilePath; } } // Usage const syncer = new FastCopySync('/config/dev-sync.yaml'); syncer.sync({ priority: 'normal' }); ``` ### Python Automation Script ```python #!/usr/bin/env python3 import subprocess import yaml import os from datetime import datetime class FastCopyManager: def __init__(self, profile_path=None): self.profile_path = profile_path def execute(self, source=None, destination=None, **kwargs): """Execute FastCopy with optional parameters""" cmd = ['fastcopy'] if self.profile_path: cmd.extend(['--profile', self.profile_path]) elif source and destination: cmd.extend([source, destination]) else: raise ValueError("Must provide profile or source/destination") # Add optional arguments if kwargs.get('streams'): cmd.extend(['--streams', str(kwargs['streams'])]) if kwargs.get('verify'): cmd.append('--verify') if kwargs.get('priority'): cmd.extend(['--priority', kwargs['priority']]) if kwargs.get('tag'): cmd.extend(['--tag', kwargs['tag']]) print(f"Executing: {' '.join(cmd)}") try: result = subprocess.run(cmd, capture_output=True, text=True, check=True) return {'success': True, 'output': result.stdout} except subprocess.CalledProcessError as e: return {'success': False, 'error': e.stderr} def create_profile(self, source, destination, **config): """Generate YAML profile programmatically""" profile = { 'transfer': { 'mode': config.get('mode', 'balanced'), 'streams': config.get('streams', 16), 'verify': config.get('verify', True), 'resume': config.get('resume', 'on_failure') }, 'paths': { 'source': source, 'destination': destination } } if 'filters' in config: profile['filters'] = config['filters'] if 'hooks' in config: profile['hooks'] = config['hooks'] profile_path = f'/tmp/fastcopy_profile_{datetime.now().strftime("%Y%m%d_%H%M%S")}.yaml' with open(profile_path, 'w') as f: yaml.dump(profile, f, default_flow_style=False) return profile_path # Usage example if __name__ == '__main__': manager = FastCopyManager() # Create dynamic profile profile = manager.create_profile( '/data/source', '/backup/destination', mode='turbo', streams=32, verify=True, filters={'exclude': ['*.tmp', '*.log']}, hooks={'on_complete': 'echo "Backup complete"'} ) # Execute transfer result = manager.execute(profile_path=profile) print(result) ``` ## Environment Variables FastCopy supports environment variable configuration: ```bash # Set default profile directory export FASTCOPY_PROFILE_DIR="/etc/fastcopy/profiles" # Default log level export FASTCOPY_LOG_LEVEL="info" # Default stream count export FASTCOPY_STREAMS=32 # Notification endpoints export FASTCOPY_WEBHOOK_URL="https://hooks.slack.com/services/YOUR_WEBHOOK" export SMTP_SERVER="smtp.company.com" export SMTP_FROM="fastcopy@company.com" export SMTP_TO="admin@company.com" # API integration keys (if using AI features) export OPENAI_API_KEY="your-key-here" export ANTHROPIC_API_KEY="your-key-here" ``` ## Troubleshooting ### Transfer Fails Midway ```bash # Enable auto-resume
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub