Skip to main content

fastcopy-file-transfer-tool

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

설치로 이동

소스 정보

저장소
reason-machines/devtools-skills
최근 소스 활동
2026년 7월 7일 07:48
감지된 SKILL.md 언어
영어
스타
4
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기