Skip to main content

fastcopy-file-transfer-tool

Ultra-fast file copying and synchronization utility with parallel streams, integrity verification, and automation features

Ir para a instalação

Informações da origem

Repositório
reason-machines/devtools-skills
Última atividade na origem
7 de julho de 2026 às 07:48
Idioma detectado do SKILL.md
inglês
Estrelas
4
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
fastcopy-file-transfer-tool
description
Ultra-fast file copying and synchronization utility with parallel streams, integrity verification, and automation features
triggers
["how do I use FastCopy for file transfers","configure FastCopy for bulk file migration","set up parallel file copying with FastCopy","FastCopy profile configuration examples","optimize FastCopy transfer speeds","automate file synchronization with FastCopy","verify file integrity during FastCopy operations","schedule recurring transfers with FastCopy"]
# FastCopy File Transfer Tool Skill > Skill by [ara.so](https://ara.so) — Devtools Skills collection. ## Overview FastCopy is a high-performance file copying and synchronization utility designed for professionals who need to move large volumes of data efficiently. It provides parallel stream processing, intelligent caching, integrity verification, and automation capabilities through both CLI and configuration profiles. **Key Features:** - Multi-threaded parallel transfers (up to 64 concurrent streams) - Profile-based configuration system using YAML - Automatic retry and resume on failures - SHA-256 + CRC-32 integrity verification - Watch mode for continuous synchronization - Cross-platform support (Windows, macOS, Linux) - CLI and GUI interfaces ## Installation ### Windows ```powershell # Download and extract the portable version # Run the installer or use the portable executable fastcopy.exe --version ``` ### macOS ```bash # Using Homebrew (if available) brew install fastcopy # Or download the .dmg and install ``` ### Linux ```bash # Debian/Ubuntu sudo apt install fastcopy # Fedora sudo dnf install fastcopy # Arch Linux yay -S fastcopy # Verify installation fastcopy --version ``` ## CLI Commands ### Basic Syntax ```bash fastcopy [SOURCE] [DESTINATION] [OPTIONS] ``` ### Key Commands **Simple Copy:** ```bash # Copy single file fastcopy /path/to/source.file /path/to/destination/ # Copy entire directory fastcopy /source/directory/ /destination/directory/ ``` **High-Speed Transfer:** ```bash # Maximum speed with 64 parallel streams fastcopy /large/dataset/ /backup/location/ --streams 64 --mode turbo # Copy with specific buffer size fastcopy source.iso /backups/ --buffer 256 --streams 32 ``` **Integrity Verification:** ```bash # Copy with verification enabled fastcopy /important/data/ /backup/ --verify # Skip verification for speed fastcopy /temp/files/ /destination/ --no-verify ``` **Resume and Retry:** ```bash # Enable automatic resume on failure fastcopy /media/ /nas/ --resume always --retry 5 # Set retry backoff interval fastcopy /files/ /backup/ --resume on_failure --retry-delay 10 ``` **Logging and Monitoring:** ```bash # Enable debug logging fastcopy /data/ /backup/ --log-level debug --log-file transfer.log # Set priority level fastcopy /source/ /dest/ --priority high ``` ## Profile Configuration FastCopy uses YAML profiles for complex or recurring transfer operations. ### Basic Profile Structure **basic-transfer.yaml:** ```yaml transfer: mode: "balanced" # standard, balanced, turbo streams: 16 # concurrent streams (1-64) buffer_size_mb: 128 verify: true resume: on_failure # always, on_failure, never paths: source: "/data/projects" destination: "/backup/projects" options: overwrite: true preserve_permissions: true preserve_timestamps: true follow_symlinks: false ``` ### Advanced Profile with Scheduling **scheduled-backup.yaml:** ```yaml transfer: mode: "turbo" streams: 32 buffer_size_mb: 256 verify: true resume: always paths: source: "/mnt/storage/raw_footage" destination: "//nas/archive/project_alpha" schedule: type: "cron" # one_time, watch, cron expression: "0 2 * * *" # Daily at 2 AM timezone: "UTC" filters: include: - "*.mp4" - "*.mov" - "*.avi" exclude: - "*.tmp" - ".DS_Store" - "Thumbs.db" hooks: on_start: "echo 'Starting backup...'" on_complete: "/opt/scripts/notify-success.sh" on_error: "/opt/scripts/alert-failure.sh" ``` ### Watch Mode Profile **continuous-sync.yaml:** ```yaml transfer: mode: "balanced" streams: 8 buffer_size_mb: 64 verify: true resume: always paths: source: "/home/user/documents" destination: "/backup/documents" schedule: type: "watch" interval_seconds: 300 # Check every 5 minutes debounce_ms: 1000 # Wait 1s after last change options: sync_delete: false # Don't delete from destination bidirectional: false conflict_resolution: "newer" # newer, source, destination logging: level: "info" file: "/var/log/fastcopy/documents-sync.log" rotate_size_mb: 50 ``` ## Using Profiles ### Load and Execute Profile ```bash # Run with profile fastcopy --profile backup-profile.yaml # Override profile settings fastcopy --profile backup-profile.yaml --streams 64 --verify false # Dry run to see what would be copied fastcopy --profile backup-profile.yaml --dry-run # Run in background fastcopy --profile continuous-sync.yaml --daemon ``` ## Code Examples ### Shell Script Automation **automated-backup.sh:** ```bash #!/bin/bash # Environment variables export FASTCOPY_LOG_DIR="/var/log/fastcopy" export FASTCOPY_PROFILE_DIR="/etc/fastcopy/profiles" # Daily backup script TIMESTAMP=$(date +%Y%m%d_%H%M%S) LOG_FILE="${FASTCOPY_LOG_DIR}/backup_${TIMESTAMP}.log" echo "Starting backup at $(date)" | tee -a "$LOG_FILE" # Run FastCopy with high priority fastcopy \ /data/production \ /backup/daily/production_${TIMESTAMP} \ --mode turbo \ --streams 32 \ --verify \ --resume always \ --log-file "$LOG_FILE" \ --priority high if [ $? -eq 0 ]; then echo "Backup completed successfully" | tee -a "$LOG_FILE" # Send success notification curl -X POST "$NOTIFICATION_WEBHOOK" \ -H "Content-Type: application/json" \ -d "{\"status\": \"success\", \"timestamp\": \"$TIMESTAMP\"}" else echo "Backup failed" | tee -a "$LOG_FILE" # Send failure alert curl -X POST "$ALERT_WEBHOOK" \ -H "Content-Type: application/json" \ -d "{\"status\": \"failed\", \"timestamp\": \"$TIMESTAMP\"}" exit 1 fi ``` ### Batch Processing **multi-source-sync.sh:** ```bash #!/bin/bash # Sync multiple directories in parallel SOURCES=( "/data/project_a" "/data/project_b" "/data/project_c" ) DEST_BASE="/backup/projects" for source in "${SOURCES[@]}"; do project_name=$(basename "$source") # Run each in background fastcopy "$source" "${DEST_BASE}/${project_name}" \ --mode balanced \ --streams 16 \ --verify \ --log-file "/var/log/fastcopy/${project_name}.log" & done # Wait for all background jobs wait echo "All syncs completed" ``` ### Conditional Transfer Script **smart-backup.sh:** ```bash #!/bin/bash SOURCE_DIR="/data/media" DEST_DIR="/backup/media" MIN_FREE_SPACE_GB=100 # Check available space available_space=$(df -BG "$DEST_DIR" | awk 'NR==2 {print $4}' | sed 's/G//') if [ "$available_space" -lt "$MIN_FREE_SPACE_GB" ]; then echo "Insufficient space: ${available_space}GB available, need ${MIN_FREE_SPACE_GB}GB" exit 1 fi # Check if source has changed if [ -f "${DEST_DIR}/.last_sync" ]; then last_sync=$(cat "${DEST_DIR}/.last_sync") changed_files=$(find "$SOURCE_DIR" -newer "${DEST_DIR}/.last_sync" -type f | wc -l) if [ "$changed_files" -eq 0 ]; then echo "No changes detected since last sync" exit 0 fi echo "Found $changed_files changed files" fi # Perform transfer fastcopy "$SOURCE_DIR" "$DEST_DIR" \ --mode turbo \ --streams 32 \ --verify \ --resume always if [ $? -eq 0 ]; then date +%s > "${DEST_DIR}/.last_sync" echo "Sync completed successfully" fi ``` ## Configuration Files ### Global Configuration **~/.fastcopy/config.yaml:** ```yaml defaults: mode: "balanced" streams: 16 buffer_size_mb: 128 verify: true resume: on_failure ui: theme: "dark" show_progress: true notification_level: "important" paths: log_directory: "~/.fastcopy/logs" profile_directory: "~/.fastcopy/profiles" temp_directory: "/tmp/fastcopy" performance: max_memory_mb: 4096 cpu_affinity: [] # Empty = use all cores io_priority: "normal" # low, normal, high network: tcp_buffer_kb: 256 retry_timeout_seconds: 30 max_retries: 5 backoff_multiplier: 2.0 ``` ### Environment Variables ```bash # Configuration export FASTCOPY_CONFIG_DIR="$HOME/.fastcopy" export FASTCOPY_PROFILE_DIR="$HOME/.fastcopy/profiles" export FASTCOPY_LOG_DIR="/var/log/fastcopy" # Performance tuning export FASTCOPY_MAX_STREAMS=64 export FASTCOPY_BUFFER_SIZE_MB=256 export FASTCOPY_MAX_MEMORY_MB=8192 # Behavior export FASTCOPY_DEFAULT_MODE="turbo" export FASTCOPY_VERIFY_DEFAULT=true export FASTCOPY_RESUME_DEFAULT="always" # Integration export FASTCOPY_WEBHOOK_URL="https://hooks.example.com/fastcopy" export FASTCOPY_OPENAI_API_KEY="${OPENAI_API_KEY}" export FASTCOPY_CLAUDE_API_KEY="${CLAUDE_API_KEY}" ``` ## Common Patterns ### Large File Migration ```bash # Migrate multi-terabyte dataset with maximum efficiency fastcopy /storage/raw_data/ /archive/raw_data/ \ --mode turbo \ --streams 64 \ --buffer 512 \ --verify \ --resume always \ --priority high \ --log-file migration-$(date +%Y%m%d).log ``` ### Incremental Backup ```yaml # incremental-backup.yaml transfer: mode: "balanced" streams: 16 buffer_size_mb: 128 verify: true resume: always paths: source: "/data" destination: "/backup/incremental/$(date +%Y%m%d)" options: incremental: true compare_method: "timestamp" # timestamp, size, checksum overwrite: false filters: exclude: - "*.tmp" - "*.cache" - "node_modules/" - ".git/" ``` ### Network Transfer with Compression ```bash # Transfer to network share with optimal settings fastcopy /local/data/ \\\\server\\share\\data\\ \ --mode balanced \ --streams 8 \ --buffer 64 \ --verify \ --compress \ --network-optimize \ --retry 10 ``` ### Selective Sync with Filters ```yaml # media-sync.yaml transfer: mode: "turbo" streams: 24 buffer_size_mb: 256 verify: true paths: source: "/media/raw" destination: "/nas/processed" filters: include: - "**/*.mp4" - "**/*.mov" - "**/*.avi" - "**/*.mkv" exclude: - "**/draft/**" - "**/.tmp/**" - "**/proxy/**" options: min_file_size_mb: 1
Ver no GitHub
Este SKILL.md e muito grande, entao o SkillsMP mostra aqui apenas a primeira secao. Ver no GitHub