#!/bin/bash #------------------------------------------------------------------------------ # Copyright and license info is available in the LICENSE file included with # the Server Deployment Package (SDP), and also available online: # https://swarm.workshop.perforce.com/projects/perforce-software-sdp/view/main/LICENSE #------------------------------------------------------------------------------ # Read filename to get list of files to copy from commit to edge. # Do the copy using ascp. # # configurable pull.trigger.dir should be set to a temp folder like /p4/1/tmp # # Startup commands look like: # startup.2=pull -i 1 -u --trigger --batch=1000 # startup.3=pull -i 1 -u --trigger --batch=1000 # # The trigger entry for the pull commands looks like this: # # pull_archive pull-archive pull "/p4/common/bin/triggers/pull.sh %archiveList%" # # There are some pull trigger options, but the are not necessary with Aspera. # Aspera works best if you give it the max batch size of 1000 and set up 4 or 5 pull # threads. # # pull --trigger options --min-size and --max-size. # # These options to 'pull --trigger' set a filesize range for # a pull thread. Only the files whose data sizes fall in # the range for that pull thread will be handled. # # For example: # startup.2=pull -u -i 1 --trigger --batch=2 --min-size=240123905 (configure) # startup.3=pull -u -i 1 --trigger --batch=5 --min-size=1 --max-size=229M (configure) # # The ascp user needs to have ssl public keys set up or export ASPERA_SCP_PASS. # The ascp user should be set up with the target as / with full write access to the volume where # the depot files are located. The easiest way to do that is to use the same user that is # running the p4d service. # # Standard SDP environment is assumed, e.g P4USER, P4PORT, OSUSER, P4BIN, etc. # are set, PATH is appropriate, and a super user is logged in with a non-expiring # ticket. set -u function msg () { echo -e "$*"; } function bail () { msg "\nError: ${1:-Unknown Error}\n"; exit ${2:-1}; } [[ $# -eq 1 ]] || bail "Bad Usage!\n\nUsage:\n\t$0 %archiveList%\n\n" LOGFILE=$LOGS/pull.log fileList=$1 export ASPERA_SCP_PASS=xxxx [[ -f $fileList ]] || { echo "$fileList missing! >> $LOGFILE"; exit 1; } # Note: the -l parameter should be adjusted to how much bandwidth you want Aspera to use # in your environment. ascp -P 33001 -l 500M -d --mode=recv --file-pair-list=$fileList --user=$OSUSER --host=$P4MASTER --partial-file-suffix=asp / >> $LOGFILE 2>&1 if [[ $? -ne 0 ]]; then bail "$0: failed to execute the ascp command, contact Perforce admin.\n" fi exit 0
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#5 | 29954 | C. Thomas Tyler |
Released SDP 2023.1.29949 (2023/12/01). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#4 | 27331 | C. Thomas Tyler |
Released SDP 2020.1.27325 (2021/01/29). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#3 | 26161 | C. Thomas Tyler |
Released SDP 2019.3.26159 (2019/11/06). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#2 | 22685 | Russell C. Jackson (Rusty) | Update main with current changes from dev. | ||
#1 | 22185 | C. Thomas Tyler |
Released SDP 2017.2.22177 (2017/05/17). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
//guest/perforce_software/sdp/dev/Server/Unix/p4/common/bin/triggers/pull.sh | |||||
#1 | 22107 | Russell C. Jackson (Rusty) | External copy scripts and notes. |