Вы можете щелкнуть правой кнопкой мыши по этому файлу, выбрать «свойства», а затем вкладку «открыть с», там вы можете выбрать GIMP в качестве стандартного приложения.
Я думаю, вы можете использовать Upstart, чтобы помочь вам там. Имейте в виду, я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Update local repos
#
description "Update local repos"
# this will run the script section every time network is up
start on (net-device-up IFACE!=lo)
task
script
svn up && git fetch
# do some other useful stuff
end script
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start update-repositories в свой crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я думаю, вы можете использовать Upstart, чтобы помочь вам там. Имейте в виду, я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Update local repos
#
description "Update local repos"
# this will run the script section every time network is up
start on (net-device-up IFACE!=lo)
task
script
svn up && git fetch
# do some other useful stuff
end script
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start update-repositories в свой crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я думаю, вы можете использовать Upstart, чтобы помочь вам там. Имейте в виду, я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Update local repos
#
description "Update local repos"
# this will run the script section every time network is up
start on (net-device-up IFACE!=lo)
task
script
svn up && git fetch
# do some other useful stuff
end script
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start update-repositories в свой crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я думаю, вы можете использовать Upstart, чтобы помочь вам там. Имейте в виду, я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Update local repos
#
description "Update local repos"
# this will run the script section every time network is up
start on (net-device-up IFACE!=lo)
task
script
svn up && git fetch
# do some other useful stuff
end script
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start update-repositories в свой crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я думаю, вы можете использовать Upstart, чтобы помочь вам там. Имейте в виду, я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Update local repos
#
description "Update local repos"
# this will run the script section every time network is up
start on (net-device-up IFACE!=lo)
task
script
svn up && git fetch
# do some other useful stuff
end script
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start update-repositories в свой crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я думаю, вы можете использовать Upstart, чтобы помочь вам там. Имейте в виду, я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Update local repos
#
description "Update local repos"
# this will run the script section every time network is up
start on (net-device-up IFACE!=lo)
task
script
svn up && git fetch
# do some other useful stuff
end script
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start update-repositories в свой crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я думаю, вы можете использовать Upstart , чтобы помочь вам там. Имейте в виду, что я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Обновление локального репозитория # description "Обновление локальных репозиториев" # это будет запускать секцию сценария при каждом запуске сети (net-device-up IFACE! = lo) скрипт задачи svn up & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; git fetch # сделать другой полезный конец конца файла
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start-repositories
к вашему crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я думаю, вы можете использовать Upstart , чтобы помочь вам там. Имейте в виду, что я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Обновление локального репозитория # description "Обновление локальных репозиториев" # это будет запускать секцию сценария при каждом запуске сети (net-device-up IFACE! = lo) скрипт задачи svn up & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; git fetch # сделать другой полезный конец конца файла
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start-repositories
к вашему crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я думаю, вы можете использовать Upstart , чтобы помочь вам там. Имейте в виду, что я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Обновление локального репозитория # description "Обновление локальных репозиториев" # это будет запускать секцию сценария при каждом запуске сети (net-device-up IFACE! = lo) скрипт задачи svn up & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; git fetch # сделать другой полезный конец конца файла
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start-repositories
к вашему crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я думаю, вы можете использовать Upstart , чтобы помочь вам там. Имейте в виду, что я не тестировал этот код ниже, но что-то очень похожее.
# /etc/init/update-repositories.conf - Обновление локального репозитория # description "Обновление локальных репозиториев" # это будет запускать секцию сценария при каждом запуске сети (net-device-up IFACE! = lo) скрипт задачи svn up & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; git fetch # сделать другой полезный конец конца файла
Это в значительной степени. Возможно, вы захотите добавить код, чтобы проверить, что он работает не очень часто. Вы также можете добавить start-repositories
к вашему crontab, убедитесь, что ваше обновление произойдет, если вы постоянно находитесь в сети в течение длительного периода времени.
Я сделал cron, который выполнил тест ping на DNS-сервере, чтобы обеспечить сетевое взаимодействие. Что-то вроде этого:
ping 8.8.8.8 -c 1 -i .2 -t 60 > /dev/null 2>&1
ONLINE=$?
if [ ONLINE -eq 0 ]; then
#We're offline
else
#We're online
fi
Недавно я использовал что-то вроде этого:
#!/bin/bash
function check_online
{
netcat -z -w 5 8.8.8.8 53 && echo 1 || echo 0
}
# Initial check to see if we are online
IS_ONLINE=check_online
# How many times we should check if we're online - this prevents infinite looping
MAX_CHECKS=5
# Initial starting value for checks
CHECKS=0
# Loop while we're not online.
while [ $IS_ONLINE -eq 0 ]; do
# We're offline. Sleep for a bit, then check again
sleep 10;
IS_ONLINE=check_online
CHECKS=$[ $CHECKS + 1 ]
if [ $CHECKS -gt $MAX_CHECKS ]; then
break
fi
done
if [ $IS_ONLINE -eq 0 ]; then
# We never were able to get online. Kill script.
exit 1
fi
# Now we enter our normal code here. The above was just for online checking
Это не самый элегантный - я не уверен, как еще проверить через простую команду или файл в системе, но это сработало для меня, когда это необходимо.
Вы можете поговорить с NetworkManager, чтобы узнать, подключены вы или нет:
$state = $(dbus-send --system --print-reply \
--dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager \
org.freedesktop.NetworkManager.state 2>/dev/null \
| awk '/uint32/{print $2}')
if [ $state = 3 ]; then
echo "Connected!"
else
echo "Not connected!"
fi
Просто чтобы обернуть пару вариантов здесь в один скрипт:
#! /bin/bash
# This script checks that the interface is up, and that an internet connection is available
# It is based on code from http://askubuntu.com/questions/3299/how-to-run-cron-job-when-network-is-up
#
# Then it sleeps for a random number of seconds between 30 and 600.
# This is based on code from http://tldp.org/LDP/abs/html/randomvar.html
#
# Collated by @JonTheNiceGuy on 2015-10-15
function check_ipaddr
{
# Here we look for an IP(v4|v6) address when doing ip addr
# Note we're filtering out 127.0.0.1 and ::1/128 which are the "localhost" ip addresses
# I'm also removing fe80: which is the "link local" prefix
ip addr | \
grep -v 127.0.0.1 | \
grep -v '::1/128' | \
grep -v 'inet6 fe80:' | \
grep -E "inet [[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+|inet6" | \
wc -l
}
function check_google
{
netcat -z -w 5 8.8.8.8 53 && echo 1 || echo 0
}
until [ `check_ipaddr` -gt 1 ]; do
sleep 2
done
until [ `check_google` -eq 1 ]; do
sleep 2
done
sleep $((RANDOM%570+30))
Я планирую поддерживать этот скрипт на https://gist.github.com/JonTheNiceGuy/5cf4a23c8f2f755a9ca4
Для расширения на nixternal бинар fping отлично подходит для этого. Вы можете приготовить его в одном слое, как в
$ fping -q yoo.mama && echo yes
$ fping -q www.google.com && echo yes
yes
$
Как вы видите, yoo.mama мне не нравится, но Google это делает. В crontab вы бы сделали что-то вроде
5 5 * * * root fping -q google.com && /some/script/I/want --to --run
Я создаю сценарий оболочки, который делает то, что вам нужно, т.е. проверяет подключение к сети, а затем отключает обновления. Затем вызовите скрипт из cron.
Я определил псевдоним bash, чтобы ответить на этот вопрос:
alias netstate='ip link show | egrep -q '\''UP,LOWER_UP.* state UP'\'' && echo UP || echo DOWN'
Вы могли бы использовать его или обрабатывать вывод ip link show самостоятельно.
To ручка "net down / net come up" см. мой скрипт net-o-matic в net-o-matic
Я нашел, что решения ping дали мне сетевые ошибки, которые спамали мои журналы, если только я не манипулировал ошибками в / dev / null
Network Manager можно использовать:
if nmcli general | grep "^connected" >/dev/null
then
echo "nmcli connected"
fi
Вы можете поговорить с NetworkManager, чтобы узнать, подключены вы или нет:
$state = $(dbus-send --system --print-reply \
--dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager \
org.freedesktop.NetworkManager.state 2>/dev/null \
| awk '/uint32/{print $2}')
if [ $state = 3 ]; then
echo "Connected!"
else
echo "Not connected!"
fi
Для расширения на nixternal бинар fping отлично подходит для этого. Вы можете приготовить его в одном слое, как в
$ fping -q yoo.mama && echo yes
$ fping -q www.google.com && echo yes
yes
$
Как вы видите, yoo.mama мне не нравится, но Google это делает. В crontab вы бы сделали что-то вроде
5 5 * * * root fping -q google.com && /some/script/I/want --to --run
Я нашел, что решения ping дали мне сетевые ошибки, которые спамали мои журналы, если только я не манипулировал ошибками в / dev / null
Network Manager можно использовать:
if nmcli general | grep "^connected" >/dev/null
then
echo "nmcli connected"
fi
Просто чтобы обернуть пару вариантов здесь в один скрипт:
#! /bin/bash
# This script checks that the interface is up, and that an internet connection is available
# It is based on code from http://askubuntu.com/questions/3299/how-to-run-cron-job-when-network-is-up
#
# Then it sleeps for a random number of seconds between 30 and 600.
# This is based on code from http://tldp.org/LDP/abs/html/randomvar.html
#
# Collated by @JonTheNiceGuy on 2015-10-15
function check_ipaddr
{
# Here we look for an IP(v4|v6) address when doing ip addr
# Note we're filtering out 127.0.0.1 and ::1/128 which are the "localhost" ip addresses
# I'm also removing fe80: which is the "link local" prefix
ip addr | \
grep -v 127.0.0.1 | \
grep -v '::1/128' | \
grep -v 'inet6 fe80:' | \
grep -E "inet [[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+|inet6" | \
wc -l
}
function check_google
{
netcat -z -w 5 8.8.8.8 53 && echo 1 || echo 0
}
until [ `check_ipaddr` -gt 1 ]; do
sleep 2
done
until [ `check_google` -eq 1 ]; do
sleep 2
done
sleep $((RANDOM%570+30))
Я планирую поддерживать этот скрипт на https://gist.github.com/JonTheNiceGuy/5cf4a23c8f2f755a9ca4
Я создаю сценарий оболочки, который делает то, что вам нужно, т.е. проверяет подключение к сети, а затем отключает обновления. Затем вызовите скрипт из cron.
Я сделал cron, который выполнил тест ping на DNS-сервере, чтобы обеспечить сетевое взаимодействие. Что-то вроде этого:
ping 8.8.8.8 -c 1 -i .2 -t 60 > /dev/null 2>&1
ONLINE=$?
if [ ONLINE -eq 0 ]; then
#We're offline
else
#We're online
fi
Недавно я использовал что-то вроде этого:
#!/bin/bash
function check_online
{
netcat -z -w 5 8.8.8.8 53 && echo 1 || echo 0
}
# Initial check to see if we are online
IS_ONLINE=check_online
# How many times we should check if we're online - this prevents infinite looping
MAX_CHECKS=5
# Initial starting value for checks
CHECKS=0
# Loop while we're not online.
while [ $IS_ONLINE -eq 0 ]; do
# We're offline. Sleep for a bit, then check again
sleep 10;
IS_ONLINE=check_online
CHECKS=$[ $CHECKS + 1 ]
if [ $CHECKS -gt $MAX_CHECKS ]; then
break
fi
done
if [ $IS_ONLINE -eq 0 ]; then
# We never were able to get online. Kill script.
exit 1
fi
# Now we enter our normal code here. The above was just for online checking
Это не самый элегантный - я не уверен, как еще проверить через простую команду или файл в системе, но это сработало для меня, когда это необходимо.
Я определил псевдоним bash, чтобы ответить на этот вопрос:
alias netstate='ip link show | egrep -q '\''UP,LOWER_UP.* state UP'\'' && echo UP || echo DOWN'
Вы могли бы использовать его или обрабатывать вывод ip link show самостоятельно.
To ручка "net down / net come up" см. мой скрипт net-o-matic в net-o-matic
Вы можете поговорить с NetworkManager, чтобы узнать, подключены вы или нет:
$state = $(dbus-send --system --print-reply \
--dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager \
org.freedesktop.NetworkManager.state 2>/dev/null \
| awk '/uint32/{print $2}')
if [ $state = 3 ]; then
echo "Connected!"
else
echo "Not connected!"
fi
Для расширения на nixternal бинар fping отлично подходит для этого. Вы можете приготовить его в одном слое, как в
$ fping -q yoo.mama && echo yes
$ fping -q www.google.com && echo yes
yes
$
Как вы видите, yoo.mama мне не нравится, но Google это делает. В crontab вы бы сделали что-то вроде
5 5 * * * root fping -q google.com && /some/script/I/want --to --run
Я нашел, что решения ping дали мне сетевые ошибки, которые спамали мои журналы, если только я не манипулировал ошибками в / dev / null
Network Manager можно использовать:
if nmcli general | grep "^connected" >/dev/null
then
echo "nmcli connected"
fi