| name | fastcopy-file-transfer-optimizer |
| description | High-performance file copying and synchronization utility with multi-threaded operations and intelligent caching |
| triggers | ["how do I use fastcopy to copy files quickly","configure fastcopy for maximum speed","fastcopy parallel transfer setup","optimize file copying with fastcopy","fastcopy profile configuration examples","troubleshoot fastcopy transfer errors","setup fastcopy automation script","fastcopy cli commands and options"] |
FastCopy File Transfer Optimizer
Skill by ara.so — Devtools Skills collection.
Overview
FastCopy is a high-performance file copying and transfer utility designed for professional workflows requiring speed, reliability, and automation. It provides multi-threaded I/O operations, intelligent caching, integrity verification, and supports cross-platform deployment.
Key capabilities:
- Parallel stream processing (up to 64 concurrent streams)
- YAML-based profile configuration
- Automatic retry and resume on failure
- SHA-256/CRC-32 integrity verification
- CLI and GUI modes
- Cross-platform support (Windows, macOS, Linux)
Installation
Windows
# Download and extract portable version
# Or use installer from official source
fastcopy.exe --install
macOS
brew install fastcopy
curl -O https://example.com/fastcopy-macos.pkg
sudo installer -pkg fastcopy-macos.pkg -target /
Linux
sudo dpkg -i fastcopy_amd64.deb
tar -xzf fastcopy-linux.tar.gz
cd fastcopy
sudo make install
CLI Commands
Basic Usage
fastcopy source.file /destination/path/
fastcopy /source/dir /destination/dir --verify
fastcopy large_file.iso /backup/ --streams 64 --priority high
fastcopy /source /dest --dry-run
fastcopy /data /backup --log-level info --progress
Advanced Options
fastcopy /media /archive --buffer-size 512 --no-verify
fastcopy /source /dest --resume
fastcopy project.tar.gz /backups/ --tag "release_v2.3"
fastcopy /project /backup --exclude "*.tmp" --exclude "node_modules"
fastcopy /watched/dir /sync/target --watch --interval 60
Profile Configuration
FastCopy uses YAML profiles for complex, reusable transfer configurations.
Basic Profile
Create transfer-profile.yaml:
transfer:
mode: "balanced"
streams: 16
buffer_size_mb: 128
verify: true
resume: always
paths:
source: "/mnt/data/projects"
destination: "/backup/projects"
options:
exclude:
- "*.log"
- "*.tmp"
- ".git"
include_hidden: false
preserve_timestamps: true
preserve_permissions: true
High-Performance Profile
transfer:
mode: "turbo"
streams: 64
buffer_size_mb: 512
verify: false
resume: on_failure
compression: false
paths:
source: "/storage/raw_footage"
destination: "//nas/media/archive"
performance:
priority: "high"
cpu_affinity: [0, 1, 2, 3]
io_priority: "realtime"
logging:
level: "warning"
file: "/var/log/fastcopy/turbo.log"
Automated Backup Profile
transfer:
mode: "balanced"
streams: 32
buffer_size_mb: 256
verify: true
resume: always
paths:
source: "/home/user/documents"
destination: "/mnt/backup/documents"
schedule:
type: "cron"
expression: "0 2 * * *"
hooks:
on_start: "echo 'Backup started' | mail -s 'FastCopy' admin@example.com"
on_complete: "notify-send 'Backup Complete'"
on_error: "/opt/scripts/alert.sh"
filters:
min_size_kb: 1
max_size_gb: 100
modified_within_days: 7
Using Profiles
fastcopy --profile transfer-profile.yaml
fastcopy --profile turbo-transfer.yaml --streams 32 --verify
fastcopy --profile backup.yaml --validate
Common Patterns
Large File Migration
#!/bin/bash
SOURCE="/old/storage"
DEST="/new/storage"
LOG="/var/log/fastcopy/migration.log"
fastcopy "$SOURCE" "$DEST" \
--streams 48 \
--buffer-size 512 \
--verify \
--resume always \
--log-level info \
--log-file "$LOG" \
--exclude "*.tmp" \
--priority high
Incremental Sync
#!/bin/bash
fastcopy /workspace /backup \
--mode differential \
--verify \
--preserve-all \
--delete-extra \
--log-level warning
Network Transfer Optimization
transfer:
mode: "turbo"
streams: 32
buffer_size_mb: 256
verify: true
compression: true
network:
tcp_window_size_kb: 1024
max_retries: 5
retry_delay_ms: 1000
timeout_seconds: 300
paths:
source: "/local/data"
destination: "//remote-server/share/data"
Batch Processing
#!/bin/bash
for dir in project1 project2 project3; do
fastcopy "/source/$dir" "/dest/$dir" \
--profile standard-transfer.yaml \
--tag "$dir-backup-$(date +%Y%m%d)" \
--log-file "/var/log/fastcopy/$dir.log"
done
Integration Examples
CI/CD Pipeline Integration
name: Deploy Artifacts
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build artifacts
run: npm run build
- name: Deploy with FastCopy
run: |
fastcopy ./dist /mnt/cdn/releases/${{ github.sha }} \
--streams 32 \
--verify \
--tag "release-${{ github.sha }}" \
--log-level info
Backup Script with Hooks
#!/bin/bash
export BACKUP_DATE=$(date +%Y%m%d_%H%M%S)
export BACKUP_DEST="/backups/daily/$BACKUP_DATE"
pre_backup() {
mkdir -p "$BACKUP_DEST"
echo "Starting backup to $BACKUP_DEST"
}
post_backup() {
if [ $? -eq 0 ]; then
echo "Backup completed successfully" | mail -s "Backup Success" admin@example.com
find /backups/daily -mtime +30 -delete
else
echo "Backup FAILED" | mail -s "Backup Error" admin@example.com
fi
}
pre_backup
fastcopy /data "$BACKUP_DEST" \
--profile production-backup.yaml \
--streams 48 \
--verify
post_backup
Monitoring Script
#!/bin/bash
watch_transfers() {
fastcopy --status --json | jq '.active_transfers[] | {
id: .transfer_id,
progress: .progress_percent,
speed: .current_speed_mbps,
eta: .estimated_completion
}'
}
check_errors() {
grep -i "error\|failed" /var/log/fastcopy/*.log | tail -20
}
watch_transfers
check_errors
Configuration Files
Global Configuration
Create ~/.fastcopy/config.yaml:
defaults:
transfer:
mode: "balanced"
streams: 16
buffer_size_mb: 128
verify: true
logging:
level: "info"
directory: "~/.fastcopy/logs"
max_size_mb: 100
max_age_days: 30
performance:
priority: "normal"
max_cpu_percent: 80
max_memory_mb: 4096
profiles_directory: "~/.fastcopy/profiles"
plugins_directory: "~/.fastcopy/plugins"
Environment Variables
export FASTCOPY_CONFIG="$HOME/.fastcopy/config.yaml"
export FASTCOPY_LOG_LEVEL="info"
export FASTCOPY_BUFFER_SIZE="256"
export FASTCOPY_STREAMS="32"
export FASTCOPY_VERIFY="true"
Troubleshooting
Performance Issues
fastcopy --benchmark
fastcopy /source /dest --profile-performance --output perf.json
fastcopy /source /dest --streams 8 --buffer-size 64
fastcopy /source /dest --no-verify --mode turbo
Transfer Failures
fastcopy /source /dest --log-level debug --log-file debug.log
fastcopy /source /dest --resume --checkpoint-file .fastcopy-checkpoint
fastcopy --verify-only /destination/path
fastcopy --list-failed
Network Issues
transfer:
streams: 4
buffer_size_mb: 64
network:
max_retries: 10
retry_delay_ms: 5000
timeout_seconds: 600
keep_alive: true
tcp_nodelay: true
logging:
level: "debug"
network_trace: true
Permission Errors
ls -la /source/path
sudo fastcopy /source /dest --preserve-permissions
fastcopy /source /dest --no-preserve-permissions
Disk Space Issues
df -h /destination
fastcopy /source /dest --compress
fastcopy /source /dest --dry-run --estimate-size
Best Practices
- Always verify critical transfers: Use
--verify for important data
- Use profiles for recurring tasks: Store configuration in YAML files
- Enable resume for large transfers: Use
--resume always for multi-GB files
- Monitor logs: Check logs regularly for warnings and errors
- Test with dry-run: Preview operations with
--dry-run before execution
- Tune streams based on workload: More streams ≠ always faster
- Use tags for tracking: Tag transfers with
--tag for audit trails
- Implement hooks for automation: Use pre/post hooks for complex workflows
Quick Reference
fastcopy /src /dst --streams 32 --turbo
fastcopy /local //remote/share --verify --resume always
fastcopy /src /dst --mode differential --delete-extra
fastcopy /watched /target --watch --interval 300
fastcopy --profile backup.yaml
fastcopy --status
fastcopy --cancel <transfer_id>