Как запустить скрипт только один раз?

Проверьте файл конфигурации кэша squid для размера кэша squid.

Откройте терминал и введите следующее:

cat /etc/squid/squid.conf | grep ^cache_dir
cache_dir ufs / var / spool / squid 15000 16 256

Здесь 15000 - ваш размер каталога кеша squid.

15000 Обратите внимание, что конфигурационный файл squid - squid.conf

If вы хотите узнать, сколько данных в данный момент кэшировано, затем введите следующее в терминале

sudo du -sh /var/spool/squid

cache_dir ufs / var / spool / squid 15000 16 256

18M / var / spool / squid

1
задан 9 July 2012 в 23:38

7 ответов

Я нашел ваш вопрос интересным, поэтому я попытался выяснить, как это сделать.

Я подумал так: создайте скрипт, который мог бы удалить себя после запуска. Таким образом, скрипт может выполнить свою работу, а затем ... до свидания!

Вот код

#!/bin/bash


# Test script based on informations found on 
# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
# trying to understand if it's possibile to achieve what asked on
# http://askubuntu.com/questions/161682/how-to-run-a-script-only-a-single-time-ever

# Let's try to find in which directory the script is
# It should account for spaces, link, etc.
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

# We know the name of the script from 'basename $0'
NAME=`basename $0`

# Merge them to have the full path to the script
FULL_PATH=$DIR/$NAME
echo $FULL_PATH

# Let's be a bit theatrical
echo "This script will self destruct in"
for ((i=5;i>0;i--))
do
    echo $i
    sleep 1
done

# Goodbye!
rm $FULL_PATH

Сохраните этот тестовый код и сделайте его исполняемым, чтобы протестировать его. Помните, что он удаляется при запуске, поэтому не забудьте создать резервную копию перед его тестированием!

2
ответ дан 25 July 2018 в 18:08

Я нашел ваш вопрос интересным, поэтому я попытался выяснить, как это сделать.

Я подумал так: создайте скрипт, который мог бы удалить себя после запуска. Таким образом, скрипт может выполнить свою работу, а затем ... до свидания!

Вот код

#!/bin/bash


# Test script based on informations found on 
# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
# trying to understand if it's possibile to achieve what asked on
# http://askubuntu.com/questions/161682/how-to-run-a-script-only-a-single-time-ever

# Let's try to find in which directory the script is
# It should account for spaces, link, etc.
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

# We know the name of the script from 'basename $0'
NAME=`basename $0`

# Merge them to have the full path to the script
FULL_PATH=$DIR/$NAME
echo $FULL_PATH

# Let's be a bit theatrical
echo "This script will self destruct in"
for ((i=5;i>0;i--))
do
    echo $i
    sleep 1
done

# Goodbye!
rm $FULL_PATH

Сохраните этот тестовый код и сделайте его исполняемым, чтобы протестировать его. Помните, что он удаляется при запуске, поэтому не забудьте создать резервную копию перед его тестированием!

2
ответ дан 2 August 2018 в 00:23

Я нашел ваш вопрос интересным, поэтому я попытался выяснить, как это сделать.

Я подумал так: создайте скрипт, который мог бы удалить себя после запуска. Таким образом, скрипт может выполнить свою работу, а затем ... до свидания!

Вот код

#!/bin/bash


# Test script based on informations found on 
# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
# trying to understand if it's possibile to achieve what asked on
# http://askubuntu.com/questions/161682/how-to-run-a-script-only-a-single-time-ever

# Let's try to find in which directory the script is
# It should account for spaces, link, etc.
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

# We know the name of the script from 'basename $0'
NAME=`basename $0`

# Merge them to have the full path to the script
FULL_PATH=$DIR/$NAME
echo $FULL_PATH

# Let's be a bit theatrical
echo "This script will self destruct in"
for ((i=5;i>0;i--))
do
    echo $i
    sleep 1
done

# Goodbye!
rm $FULL_PATH

Сохраните этот тестовый код и сделайте его исполняемым для его тестирования. Помните, что он удаляется при запуске, поэтому не забудьте создать резервную копию перед его тестированием!

2
ответ дан 4 August 2018 в 15:51

Я нашел ваш вопрос интересным, поэтому я попытался выяснить, как это сделать.

Я подумал так: создайте скрипт, который мог бы удалить себя после запуска. Таким образом, скрипт может выполнить свою работу, а затем ... до свидания!

Вот код

#!/bin/bash


# Test script based on informations found on 
# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
# trying to understand if it's possibile to achieve what asked on
# http://askubuntu.com/questions/161682/how-to-run-a-script-only-a-single-time-ever

# Let's try to find in which directory the script is
# It should account for spaces, link, etc.
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

# We know the name of the script from 'basename $0'
NAME=`basename $0`

# Merge them to have the full path to the script
FULL_PATH=$DIR/$NAME
echo $FULL_PATH

# Let's be a bit theatrical
echo "This script will self destruct in"
for ((i=5;i>0;i--))
do
    echo $i
    sleep 1
done

# Goodbye!
rm $FULL_PATH

Сохраните этот тестовый код и сделайте его исполняемым для его тестирования. Помните, что он удаляется при запуске, поэтому не забудьте создать резервную копию перед его тестированием!

2
ответ дан 6 August 2018 в 00:29

Я нашел ваш вопрос интересным, поэтому я попытался выяснить, как это сделать.

Я подумал так: создайте скрипт, который мог бы удалить себя после запуска. Таким образом, скрипт может выполнить свою работу, а затем ... до свидания!

Вот код

#!/bin/bash


# Test script based on informations found on 
# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
# trying to understand if it's possibile to achieve what asked on
# http://askubuntu.com/questions/161682/how-to-run-a-script-only-a-single-time-ever

# Let's try to find in which directory the script is
# It should account for spaces, link, etc.
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

# We know the name of the script from 'basename $0'
NAME=`basename $0`

# Merge them to have the full path to the script
FULL_PATH=$DIR/$NAME
echo $FULL_PATH

# Let's be a bit theatrical
echo "This script will self destruct in"
for ((i=5;i>0;i--))
do
    echo $i
    sleep 1
done

# Goodbye!
rm $FULL_PATH

Сохраните этот тестовый код и сделайте его исполняемым, чтобы протестировать его. Помните, что он удаляется при запуске, поэтому не забудьте создать резервную копию перед его тестированием!

2
ответ дан 7 August 2018 в 17:54

Я нашел ваш вопрос интересным, поэтому я попытался выяснить, как это сделать.

Я подумал так: создайте скрипт, который мог бы удалить себя после запуска. Таким образом, скрипт может выполнить свою работу, а затем ... до свидания!

Вот код

#!/bin/bash


# Test script based on informations found on 
# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
# trying to understand if it's possibile to achieve what asked on
# http://askubuntu.com/questions/161682/how-to-run-a-script-only-a-single-time-ever

# Let's try to find in which directory the script is
# It should account for spaces, link, etc.
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

# We know the name of the script from 'basename $0'
NAME=`basename $0`

# Merge them to have the full path to the script
FULL_PATH=$DIR/$NAME
echo $FULL_PATH

# Let's be a bit theatrical
echo "This script will self destruct in"
for ((i=5;i>0;i--))
do
    echo $i
    sleep 1
done

# Goodbye!
rm $FULL_PATH

Сохраните этот тестовый код и сделайте его исполняемым, чтобы протестировать его. Помните, что он удаляется при запуске, поэтому не забудьте создать резервную копию перед его тестированием!

2
ответ дан 10 August 2018 в 06:45

Я нашел ваш вопрос интересным, поэтому я попытался выяснить, как это сделать.

Я подумал так: создайте скрипт, который мог бы удалить себя после запуска. Таким образом, скрипт может выполнить свою работу, а затем ... до свидания!

Вот код

#!/bin/bash


# Test script based on informations found on 
# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
# trying to understand if it's possibile to achieve what asked on
# http://askubuntu.com/questions/161682/how-to-run-a-script-only-a-single-time-ever

# Let's try to find in which directory the script is
# It should account for spaces, link, etc.
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

# We know the name of the script from 'basename $0'
NAME=`basename $0`

# Merge them to have the full path to the script
FULL_PATH=$DIR/$NAME
echo $FULL_PATH

# Let's be a bit theatrical
echo "This script will self destruct in"
for ((i=5;i>0;i--))
do
    echo $i
    sleep 1
done

# Goodbye!
rm $FULL_PATH

Сохраните этот тестовый код и сделайте его исполняемым для его тестирования. Помните, что он удаляется при запуске, поэтому не забудьте создать резервную копию перед его тестированием!

2
ответ дан 15 August 2018 в 18:38
  • 1
    Это понятно. Сценарий создает файл, и если этот файл существует, не запускайте сценарий снова. – James Mitch 14 July 2012 в 21:01
  • 2
    Но вопрос был: «Куда добавить этот скрипт, чтобы он запускался автоматически?». echo & quot; ... & quot; & GT; & GT; /etc/rc.local не работает должным образом, потому что последняя строка уже является выходом 0. Где ее добавить? – James Mitch 14 July 2012 в 21:02
  • 3
    @JamesMitch НЕ создает файл и проверяет его существование, этот скрипт удаляет файл самого скрипта. Не знаю про автозапуск, это должен быть другой вопрос – Dariopnc 25 September 2012 в 15:24

Другие вопросы по тегам:

Похожие вопросы: