Vi ska kopiera en stor mängd data från en server som har aktiva användare. De två valen som har diskuterats är att antingen köra kopieringen efter kontorstid, typ efter kl. 17.
Alternativet finns också att reducera hastigheten på själva kopieringen och att användare kan vara vid servern under dagtid utan att det märks.
Hur kan jag kopiera cp -R långsammare!?
Reducera hastigheten på kopiering med cp -R. Hur göra!?
-
- Inlägg: 99
- Blev medlem: 18 nov 2020, 14:52
- OS: Ubuntu
- Utgåva: 20.04 Focal Fossa LTS
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Reducera hastigheten på kopiering med cp -R. Hur göra!?
Det du kan göra är att använda "nice" så att kopieringen får lägre prioritet än vanliga processer. Typ:...om du ska ha "+1" eller något annat får du avgöra själv. Titta på "man nice"...
(om du kör "+1" eller "+20" spelar ingen roll om det inte finns något annat med prioritet däremellan. Normalt ligger processer på "0")
Kod: Markera allt
nice +1 cp -R from to
(om du kör "+1" eller "+20" spelar ingen roll om det inte finns något annat med prioritet däremellan. Normalt ligger processer på "0")
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
-
- Inlägg: 99
- Blev medlem: 18 nov 2020, 14:52
- OS: Ubuntu
- Utgåva: 20.04 Focal Fossa LTS
Re: Reducera hastigheten på kopiering med cp -R. Hur göra!?
Tack! En väldigt snygg lösning! :-)
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Reducera hastigheten på kopiering med cp -R. Hur göra!?
För den delen så är "rsync" mycket effektivare än "cp" om du ska ta backup på saker. Här är ett litet script som jag "hackat ihop" för sådant och som bevarar allting för filerna och som bara kopierar det som har förändrats:
Kod: Markera allt
#! /bin/bash
#
# -Almost identical to LuckyBackup
#
function lastchar {
echo $1 | rev | cut -b 1
}
if [[ -z $1 || $1 == "-h" || $1 == "--help" ]]; then
echo
echo "rs FROM TO"
echo
echo " FROM - Name of folder to copy"
echo " TO - Target folder"
echo
echo " Everything in folder FROM will be copied to folder TO. If no folder with same basename (last directory name) as in FROM exists, you will be asked about creating one."
echo
exit
fi
#
INFO="-h --progress --stats" # -human + full info
PRESERVE="-tgo -p" # -times -group -owner -permissions
SELECT="-r -D" # -recursive -Device_files
CLEAN="--update --delete-after --delete-excluded"
EXCLUDE_TEMP="--exclude=**/*tmp*/"
EXCLUDE_CACHE="--exclude=**/*cache*/ --exclude=**/*Cache*"
EXCLUDE_TRASH="--exclude=**/*Trash*/ --exclude=**/*trash*"
EXCLUDE_SAMBA="--exclude=**/.gvfs --exclude=**/*smb4k*/"
#
if [[ -z $1 ]]; then
while true; do
read -p "_From: " FROMSPEC
if [[ ! -z $FROMSPEC ]]; then
break
fi
done
else
FROMSPEC=$1
fi
if [[ ! -r $FROMSPEC ]]; then
echo " $FROMSPEC does not exist or is not readable"
exit 2
fi
#
if [[ -z $2 ]]; then
while true; do
read -p "_To: " TOSPEC
if [[ ! -z $TOSPEC ]]; then
break
fi
done
else
TOSPEC=$2
fi
if [[ ! -w $TOSPEC ]]; then
mkdir $TOSPEC
fi
FROMLAST=$(lastchar $FROMSPEC)
if [[ $FROMLAST != "/" ]]; then
FROM=$FROMSPEC"/"
else
FROM=$FROMSPEC
fi
TOLAST=$(lastchar $TOSPEC)
if [[ $TOLAST != "/" ]]; then
TO=$TOSPEC"/"
else
TO=$TOSPEC
fi
FROMDIR=$(basename $FROMSPEC)
TODIR=$(basename $TOSPEC)
#
if [[ ! -e $TO$FROMDIR ]]; then
echo "-Making $TO$FROMDIR..."
mkdir -p $TO$FROMDIR
TO2=$TO$FROMDIR
else
TO2=$TO
fi
#
echo
echo "--Rsync: From=$FROM To=$TO2"
echo "--Executing: rsync $INFO $PRESERVE $SELECT $CLEAN $EXCLUDE_TEMP $EXCLUDE_CACHE $EXCLUDE_TRASH $EXCLUDE_SAMBA $FROM $TO2"
rsync $INFO $PRESERVE $SELECT $CLEAN $EXCLUDE_TEMP $EXCLUDE_CACHE $EXCLUDE_TRASH $EXCLUDE_SAMBA $FROM $TO2
sync
echo
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...