Bummer. My testing routine was not specific enough. And shortly after I posted my "it's all fixed" message, I realized it was probably not.
The "photos-backup" folder is supposed to house the "DCIM" folder from the phone, which in turn has subfolders (i.e. 100MEDIA, 101MEDIA, etc.).
So I put the "set-x" back in the script:
Code:
#!/bin/bash
set -x
# The username variable passed by command line to this script
USER=$1
# The source directory where the photo folder on the phone is mirrored to
SRC=/hd1/home/$USER/.phonesync/photos-backup
# The destination directory where we want to copy only new photos we have copied before
DST=/hd1/home/$USER/.phonesync/photos-new
# The MD5 list file that tracks which files we have copied before
MD5=/hd1/home/$USER/.phonesync/photos-backup.md5
# Check files against the MD5 list and then copy if not previously copied
# Then add the md5 for that file to the MD5 list
cd $SRC
for f in *
do
FMD5=$(md5sum $f)
grep -q $FMD5 $MD5
if [[ $? -ne 0 ]]; then
cp $f $DST
md5sum $f >> $MD5
fi
done
# In case this script gets run as root, redo the file ownership so users can access their photos
chown -R $USER:$USER $DST
And ran it... and here is the output.
Code:
nick@server ~/.phonesync$ ./photos-new.sh nick
+ USER=nick
+ SRC=/hd1/home/nick/.phonesync/photos-backup
+ DST=/hd1/home/nick/.phonesync/photos-new
+ MD5=/hd1/home/nick/.phonesync/photos-backup.md5
+ cd /hd1/home/nick/.phonesync/photos-backup
+ for f in '*'
++ md5sum DCIM
md5sum: DCIM: Is a directory
+ FMD5=
+ grep -q /hd1/home/nick/.phonesync/photos-backup.md5
^C
Had to CTRL+C to stop the script.
The folder structure of photos-backup is...
Code:
nick@server ~/.phonesync$ ls * -a -R -l
-rw-r--r-- 1 nick nick 46 Sep 4 10:42 photos-backup.md5
-rwxr-xr-x 1 nick nick 841 Sep 4 11:11 photos-new.sh
photos-backup:
total 12
drwxr-xr-x 3 nick nick 4096 Sep 4 11:15 .
drwxr-xr-x 4 nick nick 4096 Sep 4 10:42 ..
drwxr-xr-x 3 nick nick 4096 Sep 4 11:09 DCIM
photos-backup/DCIM:
total 12
drwxr-xr-x 3 nick nick 4096 Sep 4 11:09 .
drwxr-xr-x 3 nick nick 4096 Sep 4 11:15 ..
drwxr-xr-x 2 nick nick 4096 Sep 4 11:10 100MEDIA
photos-backup/DCIM/100MEDIA:
total 4080
drwxr-xr-x 2 nick nick 4096 Sep 4 11:10 .
drwxr-xr-x 3 nick nick 4096 Sep 4 11:09 ..
-rw-r--r-- 1 nick nick 1243984 Jun 28 2012 IMAG0001.jpg
-rw-r--r-- 1 nick nick 1551828 Jun 28 2012 IMAG0002.jpg
-rw-r--r-- 1 nick nick 1369884 Jun 28 2012 IMAG0003.jpg
photos-new:
total 8
drwxr-xr-x 2 nick nick 4096 Sep 4 11:15 .
drwxr-xr-x 4 nick nick 4096 Sep 4 10:42 ..
So how do I modify this script for it to carry out the copies for all subfolders of "photos-backup"?
Hi
how do u make "copy" of o level dump taken via ufsdumo in solaris?
To elaborate, imagine you have taken a 0 level dump via the following command
ufsdump 0ulf /dev/rmt/1n /
and then again execute the same command to take a second 0 level dump
Now take an incremental dump
ufsdump 1ulf... (2 Replies)
Hello,
I would like to run md5sum on a list of files saved in a text file, and save the result in another file. (ie. md5sum `cat list.txt` > md5list.txt)
I have tried several things, but I am always confronted to the same problem: some of the filenames have spaces.
I have run sed on the... (5 Replies)
We are trying to make duplicates of some Magneto Optical Disks that were created in Irix 6.5. The disks are 2.3 gig and the using a scsi MOD drive. Is there possbily a disk copy like in dos or some simple script to do this - any help appreciated.
Thanks (0 Replies)
When script is running you only see when some of the commands are not successfull.
Is there a way to see which command are executed and to show the substitution of variables as every line is executed ? (3 Replies)
Hi,
I currently have a shell script that takes an RPM and scp's it to a set of remote servers and installs it.
What I would like to be able to do is make the script get the md5sum of the RPM locally (so get the md5sum of the rpm from where im running the script) and then scp the rpm to the... (0 Replies)
Ok so I wrote a php script that outputs the below to users on a webpage.
# Download: /home/content/d/i/v/divine1234/eBookDownloads/ScalpRemedy_jablaa12734.zip
the php code that outputs the above is:
echo ("<li>Download: $download_link</li>\n");
The thing is, I dont want... (1 Reply)
Hello,
I need to download multiple files from an FTP server but occasionally they arrive in error so I need to perform an integrity check. I've been attempting to write a bash script that does the following:
Downloads all files including those in sub directories
Perform md5sum using... (4 Replies)
And not to start. I can compare files, that's easy. The problem is that I compare files in a directory, and check if these files exist in another directory. The problem is that the file names are not the same. So I have to compare with "md5sum" or something similar. How I can do?
All this in... (7 Replies)
Hi All,
I have a text file (code_data.txt) with the followig data.
AMAR AB123456 XYZ
KIRAN CB789 ABC
RAJ CS78890 XYZ
KAMESH A33535335 ABC
KUMAR MD678894 MAT
RITESH SR3535355... (26 Replies)
I am getting No such file or directory if my variable contains white spaces... Is there a way to fix this?
This works
x="1.md5"
md5sum -c "$x"
This, does not
x="23\ 5\ 6\ 7\ 8\ 9\ 10.md5"
md5sum -c "$x"
md5sum: '23\ 5\ 6\ 7\ 8\ 9\ 10.md5': No such file or directory
How do I fix... (1 Reply)
Discussion started by: soichiro
1 Replies
LEARN ABOUT MOJAVE
chatwidget
chatwidget(n) Composite widget for chat applications chatwidget(n)
__________________________________________________________________________________________________________________________________________________NAME
chatwidget - Provides a multi-paned view suitable for display of chat room or irc channel information
SYNOPSIS
package require Tk 8.5
package require chatwidget ?1.0.0?
::chatwidget::chatwidget path ?options?
$widget topic command args
$widget name nick args
$widget message text args
$widget hook command args
$widget names args
$widget entry args
$widget chat args
_________________________________________________________________DESCRIPTION
This is a composite widget designed to simplify the construction of chat applications. The widget contains display areas for chat messages,
user names and topic and an entry area. It automatically handles colourization of messages per nick and manages nick completion. A system
of hooks permit the application author to adjust display features. The main chat display area may be split for use displaying history or
for searching.
The widget is made up of a number of text widget and panedwindow widgets so that the size of each part of the display may be adjusted by
the user. All the text widgets may be accessed via widget passthrough commands if fine adjustment is required. The topic and names sections
can also be hidden if desired.
COMMANDS
::chatwidget::chatwidget path ?options?
Create a new chatwidget using the Tk window id path. Any options provided are currently passed directly to the main chat text wid-
get.
WIDGET COMMANDS
$widget topic command args
The chat widget can display a topic string, for instance the topic or name given to a multi-user chatroom or irc channel.
show Enable display of the topic.
hide Disable display of the topic
set topic
Set the topic text to topic.
$widget name nick args
Control the names and tags associated with names.
list ?-full?
Returns a list of all the user names from the names view. If ?-full? is given then the list returned is a list of lists where
each sublist is made up of the nick followed by any options that have been set on this nick entry. This may be used to exam-
ine any application specific options that may be applied to a nick when using the add command.
add nick ?options?
delete nick
$widget message text args
Add messages to the display. options are -nick, -time, -type, -mark -tags
$widget hook command args
Manage hooks. add (message, post names_group, names_nick, chatstate), remove, run
$widget names args
Passthrough to the name display text widget. See the text widget manual for all available commands. The chatwidget provides two
additional commands show and hide which are used to control the display of this element in the widget.
$widget entry args
Passthrough to the entry text widget. See the text widget manual for all available commands.
$widget chat args
Passthrough to the chat text widget. See the text widget manual for all available commands.
EXAMPLE
chatwidget::chatwidget .chat
proc speak {w msg} {$w message $msg -nick user}
pack .chat -side top -fill both -expand 1
A more extensive example is available by examining the code for the picoirc program in the tclapps repository which ties the tcllib picoirc
package to this chatwidget package to create a simple irc client.
SEE ALSO
text(n)
KEYWORDS
chat, chatwidget, composite widget, irc, mega-widget, widget
chatwidget 1.0.0 chatwidget(n)