Всем дороу. Нужна помощь/совет. В общем,хочу подключить к малинке card reader,и надо сделать так,что бы при подключении SD card последний файл с неё автоматически отправлялся на сервер. Подскажите,что почитать,может статьи какие есть или готовый вариант? Язык думаю использовать python. Какие библиотеки юзать? p.s сейчас стоит rasbian. отправлять хочу любые типы файлов. просто на малинке файлы на сервер я отправлял через библиотеку 'ftp',нужна автоматика + card reader!
Прошу прощения! А в /media не происходит монтирование внешних устройств? А дату и время по вот этому никак не найти?: Код (Text): www-data@pi01:~$ ls bash config Desktop doc MPI mpi.hosts ramdisk src task test trans www-data@pi01:~$ ls -al total 108 drwxrwxrwx 22 www-data www-data 4096 Apr 23 2018 . drwxr-xr-x 5 root root 4096 Jan 9 2018 .. drwxr-xr-x 3 www-data www-data 4096 Aug 18 11:28 bash -rw------- 1 www-data www-data 5718 Dec 1 20:37 .bash_history -rw-r--r-- 1 www-data www-data 376 Apr 3 2018 .boinctui.cfg drwx------ 5 www-data www-data 4096 Feb 23 2018 .cache drwxr-xr-x 2 www-data www-data 4096 May 27 2018 config drwx------ 6 www-data www-data 4096 Mar 2 2018 .config drwx------ 3 www-data www-data 4096 Feb 23 2018 .dbus drwxr-xr-x 2 www-data www-data 4096 Feb 23 2018 Desktop drwxr-xr-x 3 www-data www-data 4096 Apr 5 2018 doc drwx------ 2 www-data www-data 4096 Apr 23 2018 .gconf drwx------ 3 www-data www-data 4096 Apr 23 2018 .gnome2 drwx------ 2 www-data www-data 4096 Mar 2 2018 .gnome2_private drwx------ 3 www-data www-data 4096 Mar 2 2018 .gnome-commander drwx------ 3 www-data www-data 4096 Jan 9 2018 .local drwx------ 4 www-data www-data 4096 Feb 23 2018 .mozilla drwxr-xr-x 3 www-data www-data 4096 Apr 1 2018 MPI -rw-r--r-- 1 www-data www-data 25 Apr 3 2018 mpi.hosts drwxrwxrwx 2 root root 160 Dec 1 20:38 ramdisk -rw-r--r-- 1 www-data www-data 66 Jan 10 2018 .selected_editor drwxr-xr-x 18 www-data www-data 4096 Sep 26 19:12 src drwx--x--x 2 www-data www-data 4096 Apr 5 2018 .ssh drwxr-xr-x 2 www-data www-data 4096 Jan 14 2018 task drwxr-xr-x 2 www-data www-data 4096 Jan 11 2018 test drwxr-xr-x 6 www-data www-data 4096 Jul 19 02:07 trans -rw------- 1 www-data www-data 107 Apr 23 2018 .Xauthority www-data@pi01:~$ Надо только сначала перейти по нужному пути ну или ls с указанием пути. А так нельзя определить устройство? (media ключевое слово): Код (Text): www-data@pi01:~$ mount /dev/mmcblk0p2 on / type ext4 (rw,noatime,data=ordered) devtmpfs on /dev type devtmpfs (rw,relatime,size=468148k,nr_inodes=117037,mode=755) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct) mqueue on /dev/mqueue type mqueue (rw,relatime) debugfs on /sys/kernel/debug type debugfs (rw,relatime) configfs on /sys/kernel/config type configfs (rw,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) tmpfs on /var/tmp type tmpfs (rw,nosuid,nodev,relatime,size=40960k) /dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro) tmpfs on /mnt/ram0 type tmpfs (rw,nosuid,nodev,relatime,size=40960k) tmpfs on /home/httpd/ramdisk type tmpfs (rw,nosuid,nodev,relatime,size=40960k) tmpfs on /run/user/1002 type tmpfs (rw,nosuid,nodev,relatime,size=94552k,mode=700,uid=1002,gid=1002) tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=94552k,mode=700,uid=1000,gid=1000) gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000) /dev/sda on /media/pi/Debian sque type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2) www-data@pi01:~$ Правда тут я воткнул USB-FLASH а не кардридер, но думаю он по USB и так туда встанет... ну и: Код (Text): www-data@pi01:~$ ls -al /media/pi/Transcend ls: cannot access /media/pi/Transcend: Permission denied www-data@pi01:~$ su Password: root@pi01:/home/httpd# ls -al /media/pi/Transcend total 1197872 drwx------ 17 pi pi 4096 Jan 1 1970 . drwxr-x---+ 3 root root 4096 Dec 2 14:06 .. drwx------ 20 pi pi 4096 Dec 7 2011 123 drwx------ 2 pi pi 4096 Jun 18 2012 2 часть drwx------ 2 pi pi 4096 Jul 19 2012 .android_secure -rw-r--r-- 1 pi pi 1494 Apr 24 2012 BOOTEX.LOG -rw-r--r-- 1 pi pi 8082209 Nov 25 2011 codelite-3.0.0.5041.tar.gz drwx------ 4 pi pi 4096 Jan 18 2012 distr -rw-r--r-- 1 pi pi 8747178 Dec 1 2011 doublecmd-0.5.1-1.gtk2.i386.tar.bz2 -rw-r--r-- 1 pi pi 74240 Jun 8 2012 ekonomika_2.doc -rw-r--r-- 1 pi pi 23040 Jun 8 2012 ekonomika_liter.doc -rw-r--r-- 1 pi pi 3037382 Nov 25 2011 emacs23-lucid_23.1+1-4ubuntu7_i386.deb drwx------ 3 pi pi 4096 Jun 18 2012 it_labs drwx------ 5 pi pi 4096 Dec 8 2011 Lin_C++_DOC drwx------ 2 pi pi 4096 Jul 19 2012 LOST.DIR drwx------ 16 pi pi 4096 Apr 5 2012 moxa_kma drwx------ 5 pi pi 4096 Oct 12 2012 mt-linc drwx------ 6 pi pi 4096 Sep 9 2014 Prolific_usb_to_com -rw-r--r-- 1 pi pi 1178147211 Jul 12 2011 Qt_SDK_Lin32_offline_v1_1_2_en.run drwx------ 2 pi pi 4096 Jun 8 2012 RECYCLER -rw-r--r-- 1 pi pi 36 Jan 18 2012 syncguid.dat drwx------ 3 pi pi 4096 Sep 2 2012 tmp drwx------ 3 pi pi 4096 Jun 19 2012 user drwx------ 3 pi pi 4096 Nov 28 2011 VirtBox -rw-r--r-- 1 pi pi 28354060 Nov 25 2011 zcp-7.0.3-30515-ubuntu-10.04-i386-free.tar.gz drwx------ 2 pi pi 4096 Jun 21 2012 СУБД -rw-r--r-- 1 pi pi 58718 Jun 8 2012 экономика лекции-2.docx root@pi01:/home/httpd# Ну Вы же все любите sudo, а я нет и Вы же так же входите от пользователя pi я я от имени www-data сервера apache потому через su и вывел листинг. А время и дату посмотрите сами.
И ещё: А при чём библиотека FTP? Это добавлено через apt-get? Вот: Код (Text): www-data@pi01:~$ ftp ftp> help Commands may be abbreviated. Commands are: ! dir mdelete qc site $ disconnect mdir sendport size account exit mget put status append form mkdir pwd struct ascii get mls quit system bell glob mode quote sunique binary hash modtime recv tenex bye help mput reget tick case idle newer rstatus trace cd image nmap rhelp type cdup ipany nlist rename user chmod ipv4 ntrans reset umask close ipv6 open restart verbose cr lcd prompt rmdir ? delete ls passive runique debug macdef proxy send ftp> Как видите всё можно сделать через ftp если на другом конце (куда надо передать) всё готово. Воспользуйтесь man ftp Посмотрите put, get, mput, mget. Да и все команды как в консоли будут работать. Как в питоне не скажу, а в bash всё нормально.
Доброго времени суток! ...и после вышесказанного надо только записать всё в скрипт и поставить в автозапуск
Вот к примеру: Код (Bash): function ftp_from() { ftp -n $ipurl << INPUT_END quote USER $_login quote PASS $_passwd cd $_ftp_path binary prompt mget $_ftp_name quit INPUT_END } function ftp_to() { ftp -n $ipurl << INPUT_END quote USER $_login quote PASS $_passwd cd $_ftp_path binary prompt mput $_ftp_name quit INPUT_END } function ftp_from_one() { ftp -n $ipurl << INPUT_END quote USER $_login quote PASS $_passwd cd $_ftp_path binary prompt get $_ftp_name quit INPUT_END } function ftp_to_one() { ftp -n $ipurl << INPUT_END quote USER $_login quote PASS $_passwd cd $_ftp_path binary prompt put $_ftp_name quit INPUT_END } Так по одиночке и кучей часть скрипта таскает файлы туда-сюда по FTP А так: Код (Bash): function telnet_func() { _telnet_recv=$(( sleep 1 echo "$_login" sleep 1 echo "$_passwd" sleep 1 echo "$_telnet_send" sleep 3 echo "exit" ) | telnet $ipurl 2>/dev/null) _telnet_recv=$(echo "$_telnet_recv" | sed '1,25d') } Скрипт управляет работой по TELNET, что крайне не рекомендовано вооще-то. А в Вашем случае ни к чему наверное вовсе.
просто необычно - на просьбу очередного халявщика столько текста и кода в ответ Чем он заслужил такую честь?
А это куски не для него лично. Возможно кому-то интересно, что я на работе применил. А именно некий комп(сервер) с Debian имея некий скрипт на bash контролирует некие устройства в сети на Linux и Windows CE включая то, что перезапускает их по мере условий. А для линукс устройств ещё и помпилирует из исходников и заливает на них файлы, настраивает скрипты. И даже контролирует их работоспособность включая скрипты и программы на них. И всё это круглосуточно.