Вы говорите думают, приблизительно два differents:
Вы не можете делать записей URL со своим файлом hosts.
сделать:
http://domainA/ points to http://127.0.0.1/domainA
Вы должны использовать API записи URL на Вас веб-сервер:
или
Демонстрационная конфигурация для апача:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domainA [NC]
RewriteRule ^/(.*) http://127.0.0.1/domainA/$1 [L,R]
RewriteCond %{HTTP_HOST} ^domainB [NC]
RewriteRule ^/(.*) http://127.0.0.1/domainB/$1 [L,R]
ਇਹ ਪ੍ਰਸ਼ਨ ਬਹੁਤ ਪੁਰਾਣਾ ਹੈ ਪਰ ਮੈਂ ਅਜੇ ਵੀ ਆਪਣਾ ਬੈਸ਼ ਸਿਰਫ ਹੱਲ ਜੋੜਨਾ ਚਾਹੁੰਦਾ ਸੀ ਕਿਉਂਕਿ ਮੈਂ ਸਿਰਫ ਇਕ ਦੀ ਭਾਲ ਕਰ ਰਿਹਾ ਸੀ ਜਦੋਂ. ਮੈਂ ਇਥੇ ਆਇਆ ਹਾਂ. ਲਿਸਟਿੰਗ ਕਮਾਂਡ ਵਿਚ ਗਰੇਪ ਟਾਰ ਸਿਰਫ ਆਪਣੇ ਖੁਦ ਦੇ ਉਦੇਸ਼ਾਂ ਲਈ ਸਿਰਫ ਟਾਰ ਫਾਈਲਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਨਾ ਹੈ, ਬੇਸ਼ੱਕ ਅਨੁਕੂਲਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ.
RESULT=`echo "ls -t path/to/old_backups/" | sftp -i ~/.ssh/your_ssh_key user@server.de | grep tar`
i=0
max=7
while read -r line; do
(( i++ ))
if (( i > max )); then
echo "DELETE $i...$line"
echo "rm $line" | sftp -i ~/.ssh/your_ssh_key user@server.de
fi
done <<< "$RESULT"
ਇਹ ਦਿੱਤੀ ਗਈ ਡਾਇਰੈਕਟਰੀ ਵਿਚਲੀਆਂ ਆਖਰੀ 7 ਫਾਇਲਾਂ ਨੂੰ ਛੱਡ ਕੇ ਸਾਰੀਆਂ ਟਾਰ ਫਾਈਲਾਂ ਨੂੰ ਮਿਟਾ ਦੇਵੇਗਾ. ਹਾਲਾਂਕਿ ਇਹ ਤਾਰੀਖ 'ਤੇ ਵਿਚਾਰ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ ਪਰ ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਪ੍ਰਤੀ ਦਿਨ ਸਿਰਫ ਇੱਕ ਬੈਕਅਪ ਹੈ ਤਾਂ ਇਹ ਕਾਫ਼ੀ ਚੰਗਾ ਹੈ.
Уверенный я могу записать некоторый сценарий на жемчуге и т.д., но это - излишество.
Вам не нужен сценарий для достижения намеченного эффекта - острота сделает, если у Вас будет доступ оболочки для отправки команды:
ssh user@host 'find /path/to/old_backups/* -mtime +7 -exec rm {} \;'
-mtime +7
файлы соответствий создали одну неделю назад с полуночи настоящего момента.
atime
вместо mtime
соответствовать прошлому времени доступа (т.е. когда Ваши файлы были в последний раз загружены) и выполняло ежедневное задание крона.
– danlefree
27 September 2010 в 19:37
Если Вы настаиваете на SCP/SFTP, можно перечислить файлы, проанализировать их использующий простой сценарий и удалить старые файлы резервных копий.
Пакетный режим "-b" переключатель должен выручить Вас. Это читает команды sftp из файла. http://linux.die.net/man/1/sftp
Мне ничего не помогло из приведенных выше ответов.
Особенно, когда вы ограничены паролем и не можете использовать закрытый ключ для утилиты sftp.
Я нашел хороший скрипт, используя lftp (gist).
Чтобы указать количество вручную, необходимо раскомментировать # STORE_DAYS=6
.
#!/bin/bash
# Simple script to delete files older than specific number of days from FTP. Provided AS IS without any warranty.
# This script use 'lftp'. And 'date' with '-d' option which is not POSIX compatible.
# FTP credentials and path
FTP_HOST="ftp.host.tld"
FTP_USER="usename"
FTP_PASS="password"
FTP_PATH="/ftp/path"
# Full path to lftp executable
LFTP=`which lftp`
# Enquery days to store from 1-st passed argument or strictly hardcode it, uncomment one to use
STORE_DAYS=${1:? "Usage ${0##*/} X, where X - count of daily archives to store"}
# STORE_DAYS=6
function removeOlderThanDays() {
# Make some temp files to store intermediate data
LIST=`mktemp`
DELLIST=`mktemp`
# Connect to ftp get file list and store it into temp file
${LFTP} << EOF
open ${FTP_USER}:${FTP_PASS}@${FTP_HOST}
cd ${FTP_PATH}
cache flush
cls -q -1 --date --time-style="+%Y%m%d" > ${LIST}
quit
EOF
# Print obtained list, uncomment for debug
# echo "File list"
# cat ${LIST}
# Delete list header, uncomment for debug
# echo "Delete list"
# Let's find date to compare
STORE_DATE=$(date -d "now - ${STORE_DAYS} days" '+%Y%m%d')
while read LINE; do
if [[ ${STORE_DATE} -ge ${LINE:0:8} && "${LINE}" != *\/ ]]; then
echo "rm -f \"${LINE:9}\"" >> ${DELLIST}
# Print files wich is subject to delete, uncomment for debug
#echo "${LINE:9}"
fi
done < ${LIST}
# More debug strings
# echo "Delete list complete"
# Print notify if list is empty and exit.
if [ ! -f ${DELLIST} ] || [ -z "$(cat ${DELLIST})" ]; then
echo "Delete list doesn't exist or empty, nothing to delete. Exiting"
exit 0;
fi
# Connect to ftp and delete files by previously formed list
${LFTP} << EOF
open ${FTP_USER}:${FTP_PASS}@${FTP_HOST}
cd ${FTP_PATH}
$(cat ${DELLIST})
quit
EOF
# Remove temp files
rm ${LIST} ${DELLIST}
}
removeOlderThanDays