Diff
checker
Texto
Texto
Imágenes
Documentos
Excel
Carpetas
Legal
Enterprise
Aplicación de escritorio
Precios
Iniciar sesión
Descargar Diffchecker Desktop
Comparar texto
Encuentra la diferencia entre dos archivos de texto
Herramientas
Historial
Editor live
Ocultar sin cambios
Sin ajuste de línea
Vista
Dividido
Unificado
Nivel de detalle
Inteligente
Palabra
Letra
Resaltado de sintaxis
Elegir sintaxis
Ignorar
Transformar texto
Ir al primer cambio
Editar entrada
Diffchecker Desktop
La forma más segura de usar Diffchecker. ¡Obtén la app de Diffchecker Desktop: tus diffs nunca salen de tu computadora!
Obtener Desktop
mover diff 6.11 to 6.12
Creado
hace 3 años
El diff nunca expira
Borrar
Exportar
Compartir
Explicar
39 eliminaciones
Líneas
Total
Eliminado
Caracteres
Total
Eliminado
Para continuar usando esta función, actualice a
Diff
checker
Pro
Ver precios
149 líneas
Copiar todo
4 adiciones
Líneas
Total
Añadido
Caracteres
Total
Añadido
Para continuar usando esta función, actualice a
Diff
checker
Pro
Ver precios
131 líneas
Copiar todo
#!/bin/bash
#!/bin/bash
#Copyright 2005-2020, Lime Technology
#Copyright 2005-2020, Lime Technology
#License: GPLv2 only
#License: GPLv2 only
# This is the 'mover' script used for moving files between a pool and the main unRAID array.
# This is the 'mover' script used for moving files between a pool and the main unRAID array.
# It is typically invoked via cron.
# It is typically invoked via cron.
# First we check if it's valid for this script run: pool use in shfs must be enabled and
# First we check if it's valid for this script run: pool use in shfs must be enabled and
# an instance of the script must not already be running.
# an instance of the script must not already be running.
# Next, check each of the top-level directories (shares) on each pool.
# Next, check each of the top-level directories (shares) on each pool.
# If, and only if, the 'Use Cache' setting for the share is set to "yes", we use 'find' to
# If, and only if, the 'Use Cache' setting for the share is set to "yes", we use 'find' to
# list the objects (files and directories) of that share directory, moving them to the array.
# list the objects (files and directories) of that share directory, moving them to the array.
# Next, we check each of the top-level directories (shares) on each array disk (in sorted order).
# Next, we check each of the top-level directories (shares) on each array disk (in sorted order).
# If, and only if, the 'Use Cache' setting for the share is set to "prefer", we use 'find' to
# If, and only if, the 'Use Cache' setting for the share is set to "prefer", we use 'find' to
# list the objects (files and directories) of that share directory, moving them to the pool
# list the objects (files and directories) of that share directory, moving them to the pool
# associted with the share.
# associted with the share.
# The script is set up so that hidden directories (i.e., directory names beginning with a '.'
# The script is set up so that hidden directories (i.e., directory names beginning with a '.'
# character) at the topmost level of a pool or an array disk are not moved. This behavior
# character) at the topmost level of a pool or an array disk are not moved. This behavior
# can be turned off by uncommenting the following line:
# can be turned off by uncommenting the following line:
# shopt -s dotglob
# shopt -s dotglob
# Files at the top level of a pool or an array disk are never moved.
# Files at the top level of a pool or an array disk are never moved.
# The 'find' command generates a list of all files and directories of a share.
# The 'find' command generates a list of all files and directories of a share.
# For each file, if the file is not "in use" by any process (as detected by 'in_use' command),
# For each file, if the file is not "in use" by any process (as detected by 'in_use' command),
# then the file is moved, and upon success, deleted from the source disk. If the file already
# then the file is moved, and upon success, deleted from the source disk. If the file already
# exists on the target, it is not moved and the source is not deleted. All meta-data of moved
# exists on the target, it is not moved and the source is not deleted. All meta-data of moved
# files/directories is preserved: permissions, ownership, extended attributes, and access/modified
# files/directories is preserved: permissions, ownership, extended attributes, and access/modified
# timestamps.
# timestamps.
# If an error occurs in copying a file, the partial file, if present, is deleted and the
# If an error occurs in copying a file, the partial file, if present, is deleted and the
# operation continues on to the next file.
# operation continues on to the next file.
PIDFILE="/var/run/mover.pid"
PIDFILE="/var/run/mover.pid"
CFGFILE="/boot/config/share.cfg"
CFGFILE="/boot/config/share.cfg"
Copiar
Copiado
Copiar
Copiado
LOGLEVEL=0
DEBUGGING=""
start() {
start() {
Copiar
Copiado
Copiar
Copiado
echo "mover: lets move some stuff"
if [ -f $PIDFILE ]; then
if [ -f $PIDFILE ]; then
if ps h $(cat $PIDFILE) | grep mover ; then
if ps h $(cat $PIDFILE) | grep mover ; then
echo "mover: already running"
echo "mover: already running"
exit 1
exit 1
fi
fi
fi
fi
if [ -f $CFGFILE ]; then
if [ -f $CFGFILE ]; then
# Only start if shfs includes pools
# Only start if shfs includes pools
if ! grep -qs 'shareCacheEnabled="yes"' $CFGFILE ; then
if ! grep -qs 'shareCacheEnabled="yes"' $CFGFILE ; then
echo "mover: cache not enabled"
echo "mover: cache not enabled"
exit 2
exit 2
fi
fi
Copiar
Copiado
Copiar
Copiado
if grep -qs 'shareMoverLogging="yes"' $CFGFILE ; then
LOGLEVEL=1
fi
fi
fi
if ! mountpoint -q /mnt/user0 ; then
if ! mountpoint -q /mnt/user0 ; then
echo "mover: array devices not mounted"
echo "mover: array devices not mounted"
exit 3
exit 3
fi
fi
echo $$ >/var/run/mover.pid
echo $$ >/var/run/mover.pid
Copiar
Copiado
Copiar
Copiado
[[ $LOGLEVEL -gt 0 ]] &&
echo "mover: started"
echo "mover: started"
shopt -s nullglob
shopt -s nullglob
Copiar
Copiado
Copiar
Copiado
# This script was modified to ignore a single share, `data` but respect all other
# Unraid share's that want to move data from any cache pool to the array
# Context: `data` contains multimedia that we want to remain on the cache
# Context: and rely on Unraid's plugin mover tuning to only run mover when cache is >70% used
# Context: without forcing all other shares to leave data on cache during that time period
# Check for objects to move from pools to array
# Check for objects to move from pools to array
for POOL in /boot/config/pools/*.cfg ; do
for POOL in /boot/config/pools/*.cfg ; do
for SHAREPATH in /mnt/$(basename "$POOL" .cfg)/*/ ; do
for SHAREPATH in /mnt/$(basename "$POOL" .cfg)/*/ ; do
SHARE=$(basename "$SHAREPATH")
SHARE=$(basename "$SHAREPATH")
Copiar
Copiado
Copiar
Copiado
if grep -qs 'shareUseCache="yes"' "/boot/config/shares/${SHARE}.cfg" ; then
if grep -qs 'shareUseCache="yes"' "/boot/config/shares/${SHARE}.cfg" ; then
Copiar
Copiado
Copiar
Copiado
if [[ $SHARE == 'data' ]]
find "${SHAREPATH%/}" -depth | /usr/local/
bin/move
$DEBUGGING
then
echo "- Skipping share: $SHARE"
continue
fi
echo "+ Processing share: $SHARE"
find "${SHAREPATH%/}" -depth | /usr/local/
s
bin/move
-d $LOGLEVEL
fi
fi
done
done
done
done
Copiar
Copiado
Copiar
Copiado
# Check for objects to move from array to pools
# Check for objects to move from array to pools
ls -dvc1 /mnt/disk[0-9]*/*/ | while read SHAREPATH ; do
ls -dvc1 /mnt/disk[0-9]*/*/ | while read SHAREPATH ; do
SHARE=$(basename "$SHAREPATH")
SHARE=$(basename "$SHAREPATH")
echo $SHARE
if grep -qs 'shareUseCache="prefer"' "/boot/config/shares/${SHARE}.cfg" ; then
if grep -qs 'shareUseCache="prefer"' "/boot/config/shares/${SHARE}.cfg" ; then
eval $(grep -s shareCachePool "/boot/config/shares/${SHARE}.cfg" | tr -d '\r')
eval $(grep -s shareCachePool "/boot/config/shares/${SHARE}.cfg" | tr -d '\r')
if [[ -z "$shareCachePool" ]]; then
if [[ -z "$shareCachePool" ]]; then
shareCachePool="cache"
shareCachePool="cache"
fi
fi
if [[ -d "/mnt/$shareCachePool" ]]; then
if [[ -d "/mnt/$shareCachePool" ]]; then
find "${SHAREPATH%/}" -depth | /usr/local/
bin/move
$DEBUGGING
find "${SHAREPATH%/}" -depth | /usr/local/
s
bin/move
-d $LOGLEVEL
fi
fi
fi
fi
done
done
rm -f $PIDFILE
rm -f $PIDFILE
Copiar
Copiado
Copiar
Copiado
[[ $LOGLEVEL -gt 0 ]] &&
echo "mover: finished"
echo "mover: finished"
}
}
killtree() {
killtree() {
local pid=$1 child
local pid=$1 child
for child in $(pgrep -P $pid); do
for child in $(pgrep -P $pid); do
killtree $child
killtree $child
done
done
[ $pid -ne $$ ] && kill -TERM $pid
[ $pid -ne $$ ] && kill -TERM $pid
}
}
# Caution: stopping mover like this can lead to partial files on the destination
# Caution: stopping mover like this can lead to partial files on the destination
# and possible incomplete hard link transfer. Not recommended to do this.
# and possible incomplete hard link transfer. Not recommended to do this.
stop() {
stop() {
if [ ! -f $PIDFILE ]; then
if [ ! -f $PIDFILE ]; then
echo "mover: not running"
echo "mover: not running"
exit 0
exit 0
fi
fi
killtree $(cat $PIDFILE)
killtree $(cat $PIDFILE)
sleep 2
sleep 2
rm -f $PIDFILE
rm -f $PIDFILE
echo "mover: stopped"
echo "mover: stopped"
}
}
case $1 in
case $1 in
start)
start)
start
start
;;
;;
stop)
stop)
stop
stop
;;
;;
status)
status)
[ -f $PIDFILE ]
[ -f $PIDFILE ]
;;
;;
*)
*)
# Default is "start"
# Default is "start"
# echo "Usage: $0 (start|stop|status)"
# echo "Usage: $0 (start|stop|status)"
start
start
;;
;;
esac
esac
Diferencias guardadas
Texto original
Abrir archivo
#!/bin/bash #Copyright 2005-2020, Lime Technology #License: GPLv2 only # This is the 'mover' script used for moving files between a pool and the main unRAID array. # It is typically invoked via cron. # First we check if it's valid for this script run: pool use in shfs must be enabled and # an instance of the script must not already be running. # Next, check each of the top-level directories (shares) on each pool. # If, and only if, the 'Use Cache' setting for the share is set to "yes", we use 'find' to # list the objects (files and directories) of that share directory, moving them to the array. # Next, we check each of the top-level directories (shares) on each array disk (in sorted order). # If, and only if, the 'Use Cache' setting for the share is set to "prefer", we use 'find' to # list the objects (files and directories) of that share directory, moving them to the pool # associted with the share. # The script is set up so that hidden directories (i.e., directory names beginning with a '.' # character) at the topmost level of a pool or an array disk are not moved. This behavior # can be turned off by uncommenting the following line: # shopt -s dotglob # Files at the top level of a pool or an array disk are never moved. # The 'find' command generates a list of all files and directories of a share. # For each file, if the file is not "in use" by any process (as detected by 'in_use' command), # then the file is moved, and upon success, deleted from the source disk. If the file already # exists on the target, it is not moved and the source is not deleted. All meta-data of moved # files/directories is preserved: permissions, ownership, extended attributes, and access/modified # timestamps. # If an error occurs in copying a file, the partial file, if present, is deleted and the # operation continues on to the next file. PIDFILE="/var/run/mover.pid" CFGFILE="/boot/config/share.cfg" LOGLEVEL=0 start() { echo "mover: lets move some stuff" if [ -f $PIDFILE ]; then if ps h $(cat $PIDFILE) | grep mover ; then echo "mover: already running" exit 1 fi fi if [ -f $CFGFILE ]; then # Only start if shfs includes pools if ! grep -qs 'shareCacheEnabled="yes"' $CFGFILE ; then echo "mover: cache not enabled" exit 2 fi if grep -qs 'shareMoverLogging="yes"' $CFGFILE ; then LOGLEVEL=1 fi fi if ! mountpoint -q /mnt/user0 ; then echo "mover: array devices not mounted" exit 3 fi echo $$ >/var/run/mover.pid [[ $LOGLEVEL -gt 0 ]] && echo "mover: started" shopt -s nullglob # This script was modified to ignore a single share, `data` but respect all other # Unraid share's that want to move data from any cache pool to the array # Context: `data` contains multimedia that we want to remain on the cache # Context: and rely on Unraid's plugin mover tuning to only run mover when cache is >70% used # Context: without forcing all other shares to leave data on cache during that time period # Check for objects to move from pools to array for POOL in /boot/config/pools/*.cfg ; do for SHAREPATH in /mnt/$(basename "$POOL" .cfg)/*/ ; do SHARE=$(basename "$SHAREPATH") if grep -qs 'shareUseCache="yes"' "/boot/config/shares/${SHARE}.cfg" ; then if [[ $SHARE == 'data' ]] then echo "- Skipping share: $SHARE" continue fi echo "+ Processing share: $SHARE" find "${SHAREPATH%/}" -depth | /usr/local/sbin/move -d $LOGLEVEL fi done done # Check for objects to move from array to pools ls -dvc1 /mnt/disk[0-9]*/*/ | while read SHAREPATH ; do SHARE=$(basename "$SHAREPATH") echo $SHARE if grep -qs 'shareUseCache="prefer"' "/boot/config/shares/${SHARE}.cfg" ; then eval $(grep -s shareCachePool "/boot/config/shares/${SHARE}.cfg" | tr -d '\r') if [[ -z "$shareCachePool" ]]; then shareCachePool="cache" fi if [[ -d "/mnt/$shareCachePool" ]]; then find "${SHAREPATH%/}" -depth | /usr/local/sbin/move -d $LOGLEVEL fi fi done rm -f $PIDFILE [[ $LOGLEVEL -gt 0 ]] && echo "mover: finished" } killtree() { local pid=$1 child for child in $(pgrep -P $pid); do killtree $child done [ $pid -ne $$ ] && kill -TERM $pid } # Caution: stopping mover like this can lead to partial files on the destination # and possible incomplete hard link transfer. Not recommended to do this. stop() { if [ ! -f $PIDFILE ]; then echo "mover: not running" exit 0 fi killtree $(cat $PIDFILE) sleep 2 rm -f $PIDFILE echo "mover: stopped" } case $1 in start) start ;; stop) stop ;; status) [ -f $PIDFILE ] ;; *) # Default is "start" # echo "Usage: $0 (start|stop|status)" start ;; esac
Texto modificado
Abrir archivo
#!/bin/bash #Copyright 2005-2020, Lime Technology #License: GPLv2 only # This is the 'mover' script used for moving files between a pool and the main unRAID array. # It is typically invoked via cron. # First we check if it's valid for this script run: pool use in shfs must be enabled and # an instance of the script must not already be running. # Next, check each of the top-level directories (shares) on each pool. # If, and only if, the 'Use Cache' setting for the share is set to "yes", we use 'find' to # list the objects (files and directories) of that share directory, moving them to the array. # Next, we check each of the top-level directories (shares) on each array disk (in sorted order). # If, and only if, the 'Use Cache' setting for the share is set to "prefer", we use 'find' to # list the objects (files and directories) of that share directory, moving them to the pool # associted with the share. # The script is set up so that hidden directories (i.e., directory names beginning with a '.' # character) at the topmost level of a pool or an array disk are not moved. This behavior # can be turned off by uncommenting the following line: # shopt -s dotglob # Files at the top level of a pool or an array disk are never moved. # The 'find' command generates a list of all files and directories of a share. # For each file, if the file is not "in use" by any process (as detected by 'in_use' command), # then the file is moved, and upon success, deleted from the source disk. If the file already # exists on the target, it is not moved and the source is not deleted. All meta-data of moved # files/directories is preserved: permissions, ownership, extended attributes, and access/modified # timestamps. # If an error occurs in copying a file, the partial file, if present, is deleted and the # operation continues on to the next file. PIDFILE="/var/run/mover.pid" CFGFILE="/boot/config/share.cfg" DEBUGGING="" start() { if [ -f $PIDFILE ]; then if ps h $(cat $PIDFILE) | grep mover ; then echo "mover: already running" exit 1 fi fi if [ -f $CFGFILE ]; then # Only start if shfs includes pools if ! grep -qs 'shareCacheEnabled="yes"' $CFGFILE ; then echo "mover: cache not enabled" exit 2 fi fi if ! mountpoint -q /mnt/user0 ; then echo "mover: array devices not mounted" exit 3 fi echo $$ >/var/run/mover.pid echo "mover: started" shopt -s nullglob # Check for objects to move from pools to array for POOL in /boot/config/pools/*.cfg ; do for SHAREPATH in /mnt/$(basename "$POOL" .cfg)/*/ ; do SHARE=$(basename "$SHAREPATH") if grep -qs 'shareUseCache="yes"' "/boot/config/shares/${SHARE}.cfg" ; then find "${SHAREPATH%/}" -depth | /usr/local/bin/move $DEBUGGING fi done done # Check for objects to move from array to pools ls -dvc1 /mnt/disk[0-9]*/*/ | while read SHAREPATH ; do SHARE=$(basename "$SHAREPATH") if grep -qs 'shareUseCache="prefer"' "/boot/config/shares/${SHARE}.cfg" ; then eval $(grep -s shareCachePool "/boot/config/shares/${SHARE}.cfg" | tr -d '\r') if [[ -z "$shareCachePool" ]]; then shareCachePool="cache" fi if [[ -d "/mnt/$shareCachePool" ]]; then find "${SHAREPATH%/}" -depth | /usr/local/bin/move $DEBUGGING fi fi done rm -f $PIDFILE echo "mover: finished" } killtree() { local pid=$1 child for child in $(pgrep -P $pid); do killtree $child done [ $pid -ne $$ ] && kill -TERM $pid } # Caution: stopping mover like this can lead to partial files on the destination # and possible incomplete hard link transfer. Not recommended to do this. stop() { if [ ! -f $PIDFILE ]; then echo "mover: not running" exit 0 fi killtree $(cat $PIDFILE) sleep 2 rm -f $PIDFILE echo "mover: stopped" } case $1 in start) start ;; stop) stop ;; status) [ -f $PIDFILE ] ;; *) # Default is "start" # echo "Usage: $0 (start|stop|status)" start ;; esac
Encontrar la diferencia