Вы можете сделать это с помощью команды [11636]ldd[11637]:
Пример:
Вы не поделились достаточной информацией, чтобы показать, что компьютер имеет двойное подключение, которое, в свою очередь, можно использовать для двух различных каналов MPTCP. Но поскольку я полагаю, что вы пытались дать достаточно информации, я могу сделать вывод, что вы не знаете предпосылок, и поэтому я думаю, что могу дать вам ответ. Я на самом деле не использую MPTCP, и другие могут дать вам лучшие ответы.
Многолучевое TCP полезно, когда одна из конечных точек может взаимодействовать с другой через различные маршруты. В вашем случае вы, кажется, предполагаете, что ваша машина является конечной точкой, которая может быть доступна через несколько маршрутов, но я не убежден, что ваша машина настроена так, что она может работать таким образом.
Прежде всего, необходимо использовать исходную маршрутизацию. Некоторые примеры приведены в запросе на использование функций, который должен быть выполнен при создании конфигурации маршрутизации на основе источника . Во-вторых, трудно добраться до компьютера извне, если он имеет частные сетевые адреса, скрытые за маскирующим (NAT) маршрутизатором. MPTCP хорошо работает на устройствах, подключенных к Интернету, а не на устройствах, подключенных к частным сетям с ограниченным подключением через маскирующий маршрутизатор.
Если вы хотите просто поэкспериментировать, вам, возможно, больше повезет с использованием только одного соединения для достижения конечной точки с поддержкой MPTCP через два различных маршрута. Но если вы хотите использовать два различных соединения на вашей стороне, вам, вероятно, придется сначала получить две реальные ссылки на Интернет с одним общедоступным IPv4 или IPv6 адресом.
Вы сказали, что некоторые веб-сайты указывают на наличие поддержки MPTCP. Вы должны проверить с этими веб-сайтами, что именно это означает. Может быть просто то, что ваша система сообщает им поддержку MPTCP, которая ничего не говорит о количестве каналов, которые вы можете запустить. Также может быть, что вы можете общаться через один интерфейс, но можете использовать несколько каналов, если веб-сайт доступен через несколько адресов.
-121--145989-Но что-то в синтаксисе вызывает недоумение и противоречит ожиданиям.
Аргументами для ln
в том виде, в котором вы его используете, являются:
ln [OPTION]... [-T] TARGET LINK_NAME (1-я форма)
Недоумение заключается в том, что при создании symlink аргумент target для ln
должен быть не путем к файлу, а скорее содержимым создаваемой symlink. Если подумать на мгновение, то очевидно, что это должен быть именно путь. Рассмотрим:
$ echo foo >foo
$ ln -s foo bar1
$ ln -s $PWD/foo bar2
$ cat bar1
foo
$ cat bar2
foo
$ ls -l bar1 bar2
lrwxrwxrwx 1 matt matt 3 Dec 29 16:29 bar1 -> foo
lrwxrwxrwx 1 matt matt 29 Dec 29 16:29 bar2 -> /home/matt/testdir/foo
В этом примере я создаю 2 symlinks с именами «bar1» и «bar2», которые точка к одному и тому же файлу. ls
показывает, что сами symlinks имеют различное содержимое, хотя - один содержит абсолютный путь, а другой - относительный путь. Из-за этого один продолжал бы работать, даже если бы он был перемещен в другой каталог, а другой нет:
$ mv bar2 /tmp
$ cat /tmp/bar2
foo
$ mv bar1 /tmp
$ cat /tmp/bar1
cat: /tmp/bar1: No such file or directory
Итак, учитывая, что мы должны иметь возможность делать и относительные, и абсолютные symlinks,и даже для создания разорванных символьных ссылок, которые станут неразорванными, если целевой файл будет создан позже, аргумент target должен интерпретироваться как текст произвольной формы, а не как путь к уже существующему файлу.
Если вы хотите создать файл с именем deploy/resources.php, который ссылается на deploy/resources.build.php, вам нужно решить, хотите ли вы создать абсолютную symlink (которая устойчива к перемещаемому symlink, но прерывается при перемещении целевого объекта)или относительный symlink (который будет продолжать работать до тех пор, пока symlink и target перемещаются вместе и поддерживают одинаковые относительные пути).
Чтобы создать абсолютную символьную ссылку, можно сделать следующее:
$ ln -s $PWD/deploy/resources.build.php deploy/resources.php
Чтобы создать относительную ссылку, сначала необходимо определить относительный путь от источника к цели. В этом случае, поскольку источник и цель находятся в одном каталоге относительно друг друга, можно просто сделать следующее:
$ ln -s resources.build.php deploy/resources.php
Если бы они не находились в одном каталоге, вместо этого нужно было бы сделать что-то вроде:
$ ln -s ../foo/f bar/b
В этом случае, несмотря на то, что foo
и bar
находятся в текущем каталоге, необходимо включить ../
в ln
target , поскольку в нем описывается, как найти f
из каталога, содержащего b
.
Это чрезвычайно длинное объяснение, но, надеюсь, оно поможет вам понять синтаксис ln
немного лучше.
Очевидно, вы можете использовать api Google для перечисления и сортировки файлов по вашим потребностям специально (от drive --help
) :
list:
-m, --max Max results
-q, --query Query (see https://developers.google.com/drive/search-parameters)
... и от ссылки...
modifiedDate > '2012-06-04T12:00:00' // default time zone is UTC modifiedDate > '2012-06-04T12:00:00-08:00'
Обратите внимание, что в примере поиск файлов более поздней , чем определенная дата...
Так что это совсем не очень сложно, хотя, по какой бы причине, диск
, кажется, способен обрабатывать только один аргумент на вызов:
mdate_list() { drive list -nq \
"modifiedDate $1 '$(date -ud"$2" '+%FT%T')' and \
mimeType != 'application/vnd.google-apps.folder'"
}
rmdrv() for dfile do drive delete -i "$dfile" || return; done
set -f; unset IFS #no split data mangling, please
while set -- $(mdate_list \< '15 days ago'|cut -d\ -f1)
[ "$#" -gt 0 ]
do rmdrv "$@" || ! break
done
Я только установил пока
цикл вообще на случай, если у вас есть слишком много файлов диска для обработки в одном списке - большую часть времени вы легко обойдетесь без него, но если есть много, это будет продолжать заполнять список, пока нет больше.
Остальное происходит только в результате данных, которые вы его подаете. Обратите внимание, что я специально исключил папки здесь, но вы, вероятно, захотите посмотреть на упомянутую ссылку, если есть что-то еще, что вы можете изменить.
Предполагая, что список файлов находится в файле с именем X.txt
, скрипт Bash следующим образом может сделать работу:
#!/bin/bash
IFS="\n"
for i in $(cat x.txt)
do
fid=$(echo $i | awk '{print $1}') # extract the file id
d=$(echo $i | awk '{print $5}') # extract the date filed
d2=$(date -d "$d" +%s) # convert it to epoch sec
now=$(date +%s) # current time in epoch sec
diff=$(( (now - d2) / 86400 )) # find diff and convert it to days
echo "The file $fid is $diff days old"
if (( $diff > 15 )) #if the diff is greater than 15
then
#delete file
drive delete --id $fid
fi
done
Очень просто с awk
drive list |\
awk 'BEGIN{ "date +%s -d -15\\ days" | getline n }
$6{ m=$5"\\ "$6
("date +%s -d "m) | getline t
if(t < n) system("drive delete -id "$1) }'