Reducera hastigheten på kopiering med cp -R. Hur göra!?

Konfiguration av nätverk, hur man använder Ubuntu som server, och håller sin dator säker
civilpolisen
Inlägg: 99
Blev medlem: 18 nov 2020, 14:52
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS

Reducera hastigheten på kopiering med cp -R. Hur göra!?

Inlägg av civilpolisen »

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!?
Användarvisningsbild
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!?

Inlägg av Osprey »

Det du kan göra är att använda "nice" så att kopieringen får lägre prioritet än vanliga processer. Typ:

Kod: Markera allt

nice +1 cp -R from to
...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")
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...
civilpolisen
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!?

Inlägg av civilpolisen »

Tack! En väldigt snygg lösning! :-)
Användarvisningsbild
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!?

Inlägg av Osprey »

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...
Skriv svar

Återgå till "Nätverk, säkerhet och servrar"